这是我的表Student_Grade
:
id StudentName subcode,Grade StdId
-----------------------------------
1 pinky 1 A 1
2 Archana 2 A 1
3 leena 1 A 1
4 leena 2 A 1
5 leena 3 B 1
6 Rupali 1 A 2
7 Megha 1 A 2
8 smita 1 A 1
等级是从A到DI想要在同一个等级相同时只显示一次记录,无论是什么是子代码和学名。对于特定的子代码,适当的学生名称来自stid和等级specidy。如果等级不同为相同的stid,显示两个记录。我想在这里展示
我申请了row_numer()
在SQL Server 2005中正常工作在SQL Server 2000中不起作用。2000年怎么办?
查询是:
SELECT
StdId, SubCode, Studentname, Grade, subjectname
FROM
(SELECT
StdId, SubCode, Studentname, Grade,
Subjects.subjectname as subjectname,
Row_number() OVER(PARTITION BY cast(StdId as varchar) +' - '+ Grade ORDER BY SubCode desc,Studentname desc) rn
FROM
Student_Grade
INNER JOIN
Subjects ON Subjects.id = Student_Grade.SubCode) t
WHERE
rn = 1
结果:
stdid subcode Studentname Grade SubjectName
1 2 leena A Marathi
1 3 leena B Hindi
2 1 Rupali A English