水上漂123 发表于 2015-5-28 19:36

本帖最后由 水上漂123 于 2015-5-28 22:24 编辑

第一题:select 学号,姓名,count(课程名)as 选课数,sum(成绩) as 总成绩 f (select a.学号,姓名,课程名,成绩 f [课程$$$$] c right join (select * f [学生$$$$] a left join [成绩$$$$] b on a.学号=b.学号) d on c.课程号=d.课程号) group by 学号,姓名第二题:select a.学号,姓名,c.课程名,成绩 f[学生$$$$]a,[成绩$$$$]b,[课程$$$$]c where a.学号=b.学号 and b.课程号=c.课程号 and 成绩>95第三题:select c.* f[学生$$$$]c left join (select a.*,b.* f [成绩$$$$]a left join[课程$$$$]b on a.课程号=b.课程号)d on c.学号=d.学号 where 课程名 is null第四题:select 学号,姓名 f (select 学号,姓名,count(课程名) as 课程数 f (select a.学号,姓名,c.课程名 f [学生$$$$]a,[成绩$$$$]b,[课程$$$$]c where a.学号=b.学号 and b.课程号=c.课程号)group by 学号,姓名) where 课程数<14第五题:select a.姓名 as 姓名,a.联系电话,b.姓名 as 亲属姓名 f[员工$$$$]a,[员工$$$$]b where a.联系电话=b.亲属电话

依雪茗香 发表于 2015-5-28 22:19

1、select a.学号,姓名,count(课程号) as 选课数,sum(成绩) as 总成绩 F [学生$]a left join [成绩$]b on a.学号=b.学号 group by a.学号,姓名
2、select a.学号,姓名,课程名,成绩 F ([学生$]a left join [成绩$]b on a.学号=b.学号) left join [课程$]c on b.课程号=c.课程号 where a.学号 in (select 学号 F [成绩$]group by 学号 having min(成绩)>95)
3、select a.* F [学生$]a left join [成绩$]b on a.学号=b.学号 where 课程号 is null
4、select a.学号,姓名 F [学生$]a,[成绩$]b where a.学号=b.学号 group by a.学号,姓名havingcount(*)<(select count(*) F [课程$])
5、select a.姓名,a.联系电话,b.姓名 as 亲属姓名 F [员工$]a,[员工$]b where a.联系电话=b.亲属电话

小小88 发表于 2015-5-29 08:43

第一题:SELECT A.学号, A.姓名, IIF(ISNULL(C.选课数),0,C.选课数) AS 选课数,IIF(ISNULL(C.总成绩),0,C.总成绩) AS 总成绩FROM [学生$] ALEFT OUTER JOIN   (SELECT B.学号, COUNT(B.学号) AS 选课数,SUM(B.成绩) AS 总成绩   F [成绩$] BGROUP BY 学号) CON C.学号=A.学号ORDER BY A.学号

xk465592765 发表于 2015-5-29 09:47

本帖最后由 xk465592765 于 2015-5-29 09:49 编辑


dingmeng1982 发表于 2015-5-29 23:02

有两题不会做:'(
页: 1 [2]
查看完整版本: 【2015SQL初级】第4讲作业B组上交贴