急求解一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 分数