Office中国论坛/Access中国论坛

标题: 如何实现排名次 [打印本页]

作者: hdbsc    时间: 2009-10-15 09:42
标题: 如何实现排名次
总分如何实现排名次
作者: hdbsc    时间: 2009-10-15 09:52
高手出手拉!!!!
作者: zhengjialon    时间: 2009-10-15 10:03
请把你的问题贴子里说明 一下
作者: hdbsc    时间: 2009-10-15 10:30
成绩由高到低排名格式
姓名  成绩  名次
一      90   1
二      89   2
三      87   3
四      87   3
五      86   5
作者: zhengjialon    时间: 2009-10-15 10:47
本问题可以用查询实现:
1.新建一个查询
2.切换成SQL视图
3.把下面的SQL语句粘贴上去:
SELECT A.BIAOSHI, A.生物五科总分, (select count(*) from Sheet1 where 生物五科总分>a.生物五科总分)+1 AS 名次
FROM Sheet1 AS A
ORDER BY A.生物五科总分 DESC;

4.运行查询既可看到结果
本方法是利用子查询的方法得到的。
注意,本方法如果有太多的数据,则速度会变慢
作者: chuang0321    时间: 2009-10-15 11:01
楼上的排名次计算方法很棒,学写了
作者: hdbsc    时间: 2009-10-15 11:13
太棒了
作者: zhengjialon    时间: 2009-10-15 11:15
其实这种方法和DCOUNT方法是差不多的
作者: hdbsc    时间: 2009-10-15 11:16
如果有个班别,然后分班各自排序,又怎样写呢?
作者: hdbsc    时间: 2009-10-15 11:16
如果有个班别,然后分班各自排名次,又怎样写呢
作者: zhengjialon    时间: 2009-10-15 11:22
要在一个查询里实现?
作者: zhengjialon    时间: 2009-10-15 11:32
表中增加一个班别的字段,输入数据,然后查询改成以下:

SELECT A.班别, A.BIAOSHI, A.生物五科总分, (select count(*) from Sheet1 where 生物五科总分>a.生物五科总分 and 班别=a.班别)+1 AS 名次
FROM Sheet1 AS A
ORDER BY A.班别,A.生物五科总分 DESC;
作者: hdbsc    时间: 2009-10-15 11:34
对!!!A 是什么意思!!
作者: hdbsc    时间: 2009-10-15 11:36
解释一下下吧
作者: zhengjialon    时间: 2009-10-15 11:37
A只是Sheet1 表的一个别名,方便区分,因为这里用的子表也是引用同一个表
作者: hdbsc    时间: 2009-10-15 11:41
谢谢拉!!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3