sql语句如何从课程分数表得到学生的成绩单表

有三个表:
学生 stu表 :sid  sname;
课程表 course: cid  cname;
分数表scores:  scid ,cid,sid,score;
如何得到类似 表:
学号sid,姓名sname,科目1(course中的cname),科目2,科目3, 。。。,总分,平均成绩;

如果没有选修那一门课,那么分数显示空白,平均成绩的科目数不包含这么课程;

全部评论
//希望对你有帮助 select a.sid, b.sname, sum(case when  c.cname="course01" then a.score end) as "course01", sum(case when  c.cname="course02" then a.score end) as "course02", sum(case when  c.cname="course03" then a.score end) as "course03", sum(case when  c.cname="course04" then a.score end) as "course04", sum(a.score) as "总分", avg(a.score) as "平均分" from scores a left join stu b on a.sid=b.sid left join coures c on a.cid=c.cid group by b.sname order by a.sid
点赞 回复 分享
发布于 2016-10-14 08:51

相关推荐

过往烟沉:我说什么来着,java就业面就是广!
点赞 评论 收藏
分享
10-11 17:30
湖南大学 C++
我已成为0offer的糕手:羡慕
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务