高手帮忙 SQL 并列排名

shao56bamuk 2015-06-05 03:12:34
表:wcsl

字段:xm sl

王五 1
张三 1
李四 1
张三 1
赵六 0

sql="select sum(sl) as zs from wcsl group by xm order by sum(sl) desc"

结果

名次 姓名 总数
1 张三 2
2 王五 1
2 李四 1
4 赵六 0


请问 这个名次怎么写 我用 COUNT 得到的结果是

名次 姓名 总数
1 张三 2
2 王五 1
3 李四 1
4 赵六 0


怎么才能得到并列结果呢 就是 王五 和 李四 并列第2

请高手帮忙完善一下代码 合并总数后相同的情况下并列排名 谢谢
...全文
480 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shao56bamuk 2015-06-05
  • 打赏
  • 举报
回复
谢谢 但是语法错误 也找不到错误所在
slwsss 2015-06-05
  • 打赏
  • 举报
回复
http://blog.csdn.net/wendellup/article/details/8599479 SELECT *,Place=(SELECT COUNT(DISTINCT sl) FROM (select sum(sl) as sl,xm from wcsl group by xm) as b WHERE sl>= a.sl) FROM (select sum(sl) as sl,xm from wcsl group by xm) a ORDER BY Place
shao56bamuk 2015-06-05
  • 打赏
  • 举报
回复
<% Set conn = Server.CreateObject("ADODB.Connection") set rs=server.CreateObject("ADODB.Recordset") Strconn="DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("123.mdb") conn.Open Strconn sql="select xm,sum(sl) as zs from wcsl group by xm order by sum(sl) desc" set rs=server.CreateObject("adodb.recordset") rs.open sql,conn,1,2 %> <table width="100%"> <tr align="center"> <td width="33%">名 次</td> <td width="33%">姓 名</td> <td width="33%">分 数</td> </tr> <% mc=0 do while not rs.eof if rs("zs")<>pm then mc=mc+1 end if %> <tr align="center"> <td><%=mc%></td> <td><%=rs("xm")%></td> <td><%=rs("zs")%></td> </tr> <% pm=rs("zs") rs.movenext loop %> </table> --------------------------- 可以得到名次 1 2 2 3 有什么办法能得到 1 2 2 4呢
shao56bamuk 2015-06-05
  • 打赏
  • 举报
回复
我把代码发到了 下载了 高手帮忙看看 谢谢 http://download.csdn.net/detail/shao56bamuk/8775937
shao56bamuk 2015-06-05
  • 打赏
  • 举报
回复
谢谢 问题没解决 语法错误! 谢谢
shao56bamuk 2015-06-05
  • 打赏
  • 举报
回复
我能做到的结果是 名次 姓名 总数 1 张三 2 2 王五 1 3 李四 1 4 赵六 0 我需要得到结果是 名次 姓名 总数 1 张三 2 2 王五 1 2 李四 1 4 赵六 0 ================================ 请问 怎么使用 COUNT 来做有并列排名的名次 高手帮忙改下代码 谢谢了
shiquanbinhuaidan 2015-06-05
  • 打赏
  • 举报
回复
select (select count(1)+1 from (select xm name,sum(sl) c from wcsl group by xm) bb where bb.c>aa.c ) m,aa.name,aa.c from (select xm name,sum(sl) c from wcsl group by xm) aa order by m; --这个试一下
shao56bamuk 2015-06-05
  • 打赏
  • 举报
回复

<%
sql="select xm,sum(sl) as zs from wcsl group by xm order by sum(sl) desc"
set rs=server.CreateObject("adodb.recordset")
rs.open sql,conn,1,2
%>
<table width="100%">
<tr align="center">
<td width="33%">名 次</td>
<td width="33%">姓 名</td>
<td width="33%">分 数</td>
</tr>
<%do while not rs.eof%>
<tr align="center">
<td></td>
<td><%=rs("xm")%></td>
<td><%=rs("zs")%></td>
</tr>
<%
rs.movenext
loop
%>
</table>
==========

怎么求名字呢? 高手帮忙
shao56bamuk 2015-06-05
  • 打赏
  • 举报
回复
大神都不在吗! 救命啊 sql="select sum(sl) as zs from wcsl group by xm order by sum(sl) desc" ==================================================== 怎么 才能 给输出记录 名次 一个 AS啊 排名 as MC (可以并列 ) 名次 姓名 总数 MC xm zs 1 张三 2 2 王五 1 2 李四 1 4 赵六 0 问题 MC怎么写 大神救命

28,376

社区成员

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

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