怎样对这种结构表进行查询?

我的数据库设计是这样的

学生表:
学号 姓名 住址 电话 简历

课程表:
课程号 课程名 学时

成绩表:
学号 课程号 成绩 学期

如果我想产生这样的结果集可以吗?
学号 姓名 学期 成绩1 成绩2 成绩3
C01 xxx 1 60 80 90


select a.学号,b.姓名,a.学期,
sum((case when a.课程号=1 then a.成绩 else 0 end)) as 成绩1 ,
sum((case when a.课程号=2 then a.成绩 else 0 end)) as 成绩2 ,
sum((case when a.课程号=3 then a.成绩 else 0 end)) as 成绩3
from 成绩表 as a left join 学生表 as b
on a.学号 = b.学号
left join 课程表 as c
on a.课程号 = c.课程号
group by a.学号,b.姓名,a.学期
order by a.学号

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus