首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

三表联查的有关问题,谢各位

2012-04-27 
三表联查的问题,急谢各位!Student学生表(Sid,Sname)Course科目表(Cid,Cname,Tid)SC成绩表(Sid,Cid,Score)T

三表联查的问题,急谢各位!
Student学生表(Sid,Sname)
Course科目表(Cid,Cname,Tid)
SC成绩表(Sid,Cid,Score)
Teacher表(Tid,Tname)

1)查询每科最好的前两名学生信息
2)查询两门以上不及格的同学学号及平均成绩

一直都不太能弄好三表联查,谢谢各位了!!

[解决办法]

SQL code
-- 1)查询每科最好的前两名学生信息with t as(select row_number() over(partition by Cid order by Score desc) rn,sid,Cid from SC)select c.Cname,a.rn,b.Snamefrom t ainner join Student b on a.Sid=b.Sidinner join Course c on a.Cid=c.Cidwhere a.rn<=2-- 2)查询两门以上不及格的同学学号及平均成绩select a.sid,avg(Score) 'avgScore'from Sc ainner join(select Sid from Sc where Score<60 group by Sid having count(*)>2) bon a.Sid=b.Sid 

热点排行