日期:2014-05-19  浏览次数:20596 次

急求解一SQL语句,考虑了快2个小时,无法很好解决,谢谢!!!感觉有些麻烦
由于数据库是ACCESS的,所以其SQL语句和T-SQL不同。

有2张表:
[Class]表
ClassID,ClassName
1,1班
2,2班
......

[Student]表
StudentID,   StudentName,   FenShu(分数),   Kecheng(课程),ClassID
1,小明,   85,   语文,1
2,小明,82,数学,1
3,小明,68,化学,1
4,兰兰,90,语文,2
5,兰兰,96,数学,2
6,兰兰,89,化学,2
......

问题:求一SQL语句,列出全校成绩最低的前10个学生。每班如果有成绩全校倒数前10名的学生,要求列出该学生的班级名称、姓名、分数、课程即可。

如果一个班级有1个以上的学生成绩位列全校倒数前10的话,查询结果中只需出现该班级一次。


考虑了很久无法解决,向大家求助,请大家不吝赐教!谢谢!!!

------解决方案--------------------
只显示一次哪个班机那么另外得出了那一个学生以外 这个班其他倒数前10得人算不算在内呢
还是也算只不过把班机空出来
------解决方案--------------------
try

Select TOP 10
B.ClassName As 班级名称,
A.StudentName As 姓名,
A.FenShu As 分数,
A.Kecheng As 课程
From Student A
Inner Join Class B
On A.ClassID = B.ClassID
Where Not Exists (Select StudentID From Student Where FenShu < A.FenShu And ClassID = A.ClassID)
Order By 分数