起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 421|回复: 8

[请求]有什么好的计算排名的方法?

[复制链接]
发表于 2010-9-24 08:45:13 | 显示全部楼层 |阅读模式
有一个个人分数的数据集,如何计算其排名?相同分数的认为是一个名次。
大家有什么好的方法吗?
回复

使用道具 举报

发表于 2010-9-25 09:30:24 | 显示全部楼层
可以先把数据集按分数排序。然后从第一位开始循环这个数据集。。取到不同的分数就保存下这个分数和排名;如果取到相同的数据,就把保存下来的排名填到当前数据上。
回复 支持 反对

使用道具 举报

发表于 2010-9-25 11:43:41 | 显示全部楼层
如果你的表的名称是Table(FS“分数”,FName“名称”)
用sql构造出你的mc“名次”
select b.MC as MC,Table.FS,Table.FName as FName from Table,
(
select RowNum as MC,a.FS as FS
from
(
select distinct FS as FS
from Table
order by FS
)a
)B
where Table.FS = b.FS
order by
  b.MC
回复 支持 反对

使用道具 举报

发表于 2010-9-26 17:23:43 | 显示全部楼层
我按你的方法改造不对啊!
回复 支持 反对

使用道具 举报

发表于 2010-9-26 17:29:57 | 显示全部楼层
您是用代码排序还是直接使用sql语句?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-27 15:11:00 | 显示全部楼层
我用第3楼的方法实现了排名计算。
可以结贴了。
回复 支持 反对

使用道具 举报

发表于 2010-9-28 17:13:11 | 显示全部楼层
服务器: 消息 1033,级别 15,状态 1,行 23
除非同时指定了 TOP,否则 ORDER BY 子句在视图、内嵌函数、派生表和子查询中无效。

我这里都出现这样的错误提示的!
回复 支持 反对

使用道具 举报

发表于 2010-9-28 17:54:48 | 显示全部楼层
7楼你把sql语句拿到数据库里直接执行看会不会报同样的错
回复 支持 反对

使用道具 举报

发表于 2010-9-30 11:52:31 | 显示全部楼层
就是在SQL2000的查询分析器里执行出现这个错误的啊!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-6 18:17 , Processed in 0.045208 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表