求学生科目名次的SQL语句实现
我用动态生成的办法生成了一个SQL语句串@StrSql(很长、很复杂),然后用
EXEC(@StrSql)
查询出一个表(在存储过程中),得出如下结果集(存在全局临时表里,不妨叫t1):
XH KCName 语文 数学 英语 总分
200501 单元一 85.0 95.0 90.0 270
200501 单元二 90.0 95.0 95.0 280
200501 单元三 85.0 95.0 95.0 275
200502 单元一 60.0 75.0 70.0 205
200502 单元二 70.0 75.0 75.0 220
200502 单元三 85.0 85.0 95.0 265
然后我想在这个结果集t1的基础上得出每次考试各科(包括总分,用百分比表示,相同分数的排名相同)的名次,例如要返回如下结果集(表t2):
XH KCName 语文 数学 英语 总分
200501 单元一 100 100 100 100
200501 单元二 100 100 100 100
200501 单元三 100 100 100 100
200502 单元一 50 50 50 50
200502 单元二 50 50 50 50
200502 单元三 100 50 100 50
该如何处理?
这些操作我都是在服务器上的存储过程中处理的。其中,表t2中的100、50等(由于表t1只有两个人,所以才有这样特殊的数字)学生成绩在班级总人数中占的百分比,比如说100%和50%。一条记录表示一次考试各科的排名,包括总分。