SQL server数据库问题 请大侠来解

来源:百度知道 编辑:UC知道 时间:2024/07/07 16:42:38
又3个表 S(S#、SN、SD、SA)分别是 学号、姓名、单位、年龄、
C(C#、CN)代表课程编号、名称
SC(S#、C#、G)代表学号、课程编号、成绩
请用SQL嵌套语句查询选修课程名称为“计算机”的学员学号和姓名
2.查询编号为“C2”的学员姓名和所属单位?
3.查不选课程编号为‘C5’的学员姓名和所属单位?
4.查询选修了3门课程的学员人数?
5列出1号课程成绩比2号课程成绩高的所有学员及其1号和2号课程的成绩
我要问题答案 问题是没有错的

sqlserver测试正常。 需要我用的测试表的话我可以也贴出来。

/* 1. 查询选修课程名称为 “计算机” 的学员学号和姓名 */
select s.s# '学号', s.sn '姓名' from s where s.s# in
(select sc.s# from sc where sc.c# in
(select c.c# from c where c.cn = '计算机'));

/* 2. 查询选修课程编号为 “C2” 的学员姓名和所属单位 */
select s.sn '姓名', s.sd '所属单位' from s where s.s# in
(select sc.s# from sc where sc.c# = 'C2');

/* 3. 查询选修课程编号 不 为 “C5” 的学员姓名和所属单位 */
select s.sn '姓名', s.sd '所属单位' from s where
s.s# not in (select sc.s# from sc where sc.c# = 'C5')
and s.s# in (select sc.s# from sc);

/* 4. 查询选修课程 = 3 门的学员人数 */
SELECT COUNT(DISTINCT s#) '人数' FROM sc GROUP BY s#
HAVING (COUNT(1) = 3);

/* 4.列出1号课程成绩比2号课程成绩高的所有学员及其1号和2号课程的成绩 */
SELECT t1.s# AS 学号, t1.g AS C1成绩, t2.g AS C2成绩
FROM sc t1 INNER JOIN
sc t2 ON t1.s# = t2.s# AND t1.g > t2.g
WHERE (t1.c# = 'c1