●做排行榜,但有相同的分数,想并列排名次,该如何处理?

gdwebinfo 2005-07-09 04:26:14
有一个表A,字段如下:

ID 分数
1 99
2 98
3 97
4 97
5 96

现在想做排行榜,但ID = 3 和ID = 4 的值一样,所以排名也要一样。想得到如下显示结果:

排行 分数
1 99
2 98
3 97
3 97
4 96

这样,两个相同的分数的排行名次都为3了,不过想了好久也不知如何解决这个问题,用累加的方法也行不通,因为有可能不止两个人的分数相同。

请大家指点…
...全文
1237 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lunyx 2005-10-11
  • 打赏
  • 举报
回复
str="select * from table1"
set rs=ExcSql(str)
dim s,s1,i
i=1
do while not rs.eof
s=rs("score")
if (s=s0)and (s0<>"") then
i=i-1
response.write i&" "&s&"<br>"
else
response.write i&" "&s&"<br>"
end if
s0=s
i=i+1
rs.movext
loop
caobin518 2005-10-10
  • 打赏
  • 举报
回复
收藏
wj021chen 2005-10-10
  • 打赏
  • 举报
回复
Microsoft VBScript 编译器错误 错误 '800a03f6'
缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft VBScript 运行时错误 错误 '800a0009'

下标越界: 'aResults(...)'

/example/CSDN/No-1.asp,行19
第19行If aResults(1,i)-aResults(1,i+1)<>0 then L=L+1

错误的提示。内容可以显示
观注本帖
hch686 2005-10-10
  • 打赏
  • 举报
回复
按照以后的方法,我把我的排名问题解决了,但是
If aResults(1,i)-aResults(1,i+1)<>0 then L=L+1
上面一行回产生溢出的
因为for i=0 to iRows中如果iRows=14,那么aResults(1,i+1)就不存在了

求教解决办法
kindwell 2005-07-11
  • 打赏
  • 举报
回复
QQgenie(妖魔鬼怪)写的那句sql语句,我想后面是不是应该加上
order by,变成SELECT id,fs FROM A ORDER BY fs DESC ?
zeoyeah 2005-07-11
  • 打赏
  • 举报
回复
在显示的时候作判断~!

如果相同,则ID加1
否则,ID不变
holoon 2005-07-09
  • 打赏
  • 举报
回复
mark
zy51 2005-07-09
  • 打赏
  • 举报
回复
我想加个判断相同的时候就写并列.你试下.
QQgenie 2005-07-09
  • 打赏
  • 举报
回复
<!--#include file="conn.asp"-->
<%
sql ="SELECT id,fs FROM A " '//改表名就可,不关字段
Set rs = conn.execute(sql) '//打开
aResults = rs.GetRows '//取得数据集
iRows = UBound(aResults, 2) '//记录数
icols = UBound(aResults, 1) '//字段数

rs.close
set rs=nothing
%>
<%
L=1
response.write "<table border=0>"
for i=0 to iRows
response.write "<tr>"
response.write "<td>"&L&"</td><td>"&aResults(1,i)&"</td>"
If aResults(1,i)-aResults(1,i+1)<>0 then L=L+1
response.write "</tr>"
next
response.write "</table>"
%>

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧