查处每门功课前两名学生的名字,课程名,成绩

Table:spa

Student(Sno,Sname,Sage,Ssex)
Course(Cno,Cname,Teacher)
SC(Sno,Cno,Grade)db

 

SQL:ab

SELECT S.Sname ,C.Cname,D.Grade
FROM Student S,Course C,
(  

  --这部分是关键:

  SELECT *

  FROM dbo.SC SCA

  WHERE grade IN
  (
    SELECT DISTINCT TOP 2 grade

    FROM SC
    WHERE SCA.Cno=Cno
    ORDER BY Grade DESC
  )

) AS DWHERE S.Sno=D.Sno AND C.Cno=D.CnoORDER BY D.Cno ASC

相关文章
相关标签/搜索