首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求运动会成绩排名SQL,该怎么处理

2012-03-21 
求运动会成绩排名SQL问题一:表:田赛成绩性别,项目,场次,姓名,出赛次序,成绩(m)男,跳远,101,李一,1,4.86男,

求运动会成绩排名SQL
问题一:
表:田赛成绩
性别,项目,场次,姓名,出赛次序,成绩(m)
男,跳远,101,李一,1,4.86
男,跳远,101,李二,2,5.86
男,跳远,101,李三,3,3.86
男,跳远,102,李四,1,3.11
男,跳远,102,李五,2,4.11
男,跳远,102,李六,3,5.11

想要的结果:
性别,项目,场次,姓名,出赛次序,成绩(m),名次
男,跳远,101,李二,2,5.86,1
男,跳远,101,李一,1,4.86,2
男,跳远,101,李三,3,3.86,3
男,跳远,102,李六,3,5.11,1
男,跳远,102,李五,2,4.11,2
男,跳远,102,李四,1,3.11,3

我写了以下SQL,做到自动显示排名,但做不到分别按场次计排名,请高手指教,谢谢。

SELECT a1.姓名, a1.成绩, COUNT(a2.成绩) AS 名次
FROM 田赛成绩 a1, 田赛成绩 a2
WHERE a1.成绩 <= a2.成绩 or (a1.成绩=a2.成绩 and a1.姓名 = a2.姓名) 
GROUP BY a1.姓名, a1.成绩
ORDER BY a1.成绩 DESC, a1.姓名 DESC;


问题二:径赛是斗时间较短,语法又如何写?


[解决办法]

SQL code
--#3修改后(把@田赛成绩 改成你的表名)select * from (select *,(select count(1) from 田赛成绩 where [成绩(m)]>=t.[成绩(m)] and 场次=t.场次) as 名次from 田赛成绩 t) aa order by 场次,名次 

热点排行