求一条SQL语句
表的结构:
T1
stu_id(学生号),coure_id(课程号),term(学期),num(分数)
主键:学生号,课程号,学期
例如:表中的数据
1001 01 1 80
1001 02 1 76
1001 03 1 68
1002 01 1 74
1002 02 1 50
1002 03 1 68
1003 01 1 56
1003 02 1 78
1003 03 1 70
.
.
.
我想得到的结果:
stu_id term 01(课程号) 02 03 总分 名次
1001 1 80 76 68 224 1
.
.
.
如果分数一样名次一样,如:
总分 名次
252 1
252 1
240 3
问题点数:0、回复次数:2Top
1 楼zarge(鲨去来兮)回复于 2003-10-01 14:15:37 得分 0
select stu_id, term,
sum(case when course_id = '01' then num else 0 end) as '01',
sum(case when course_id = '02' then num else 0 end) as '02',
sum(case when course_id = '03' then num else 0 end) as '03',
sum(num) 总分
into #tmp
from T1
group by stu_id, term
select t.*, (select count(*) from #tmp where 总分 > t.总分) + 1 as 名次
from #tmp t
order by 名次Top
2 楼playyuer(退休干部 卧鼠藏虫)回复于 2003-10-01 14:34:29 得分 0
一道褒贬不一的 SQL 考试题
http://www.csdn.net/Develop/Read_Article.asp?Id=15989Top




