[access查询]为查询加ID几种方法-奇玉
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


[access查询]为查询加ID几种方法

发表时间:2011/6/7 10:14:53 评论(4) 浏览(18558)  评论 | 加入收藏 | 复制
   
摘 要:很多朋友都碰到这个问题,如果在查询中生成一个行号。
正 文:

最近在论坛上和大家讨论为查询加ID问题,在网上搜到一篇文章,感觉很好,推荐给大家:

很多朋友都碰到这个问题,如果在查询中生成一个行号。比如有如下表
tblA  
ID, CNAME, SCORE
1   A001   80
2   B002   71
3   C003   92
4   E004   80
5   D005   85
想按分数来得到名次,如何实现? Access的SQL语句中没有rownum之类的伪列函数。 不过除了采用程序来实现外,你还可以通过下面SQL查询语句来实现

一、按成绩排序,并列者向下顺延(如下没有第三名,并列两个第四)。
ID   CNAME   SCORE    SNO
3    C003    92        1
5    D005    85        2
4    E004    80        4
1    A001    80        4
2    B002    71        5

select a.ID, a.CNAME, a.SCORE,count(*) as SNO
from tblA a inner join tblA b on a.SCORE<=b.SCORE
group by a.ID, a.CNAME, a.SCORE
order by a.SCORE desc

二、按成绩排序,并列者向上顺延(如下没有第四名,并列两个第三)。
ID   CNAME   SCORE    SNO
3    C003    92        1
5    D005    85        2
4    E004    80        3
1    A001    80        3
2    B002    71        5

select a.ID, a.CNAME, a.SCORE,count(b.ID)+1 as SNO
from tblA a left join tblA b on a.SCORE group by a.ID, a.CNAME, a.SCORE
order by a.SCORE desc

三、按成绩排序,并列者以学号大者在先。
ID   CNAME   SCORE    SNO
3    C003    92        1
5    D005    85        2
4    E004    80        3
1    A001    80        4
2    B002    71        5

select a.ID, a.CNAME, a.SCORE,count(*) as SNO
from tblA a inner join tblA b on (a.SCORE group by a.ID, a.CNAME, a.SCORE
order by 4


以上为标准SQL查询语句。除此之外,在ACCESS环境中还可以用DCOUNT域函数来实现这个排序号。 用DCOUNT域函数来实现的优点是,这个查询仍为可更新查询。但仅在ACCESS环境中可用。如果你用ADO,DAO通过JET-SQL引擎则不可以了。比如你在ASP中。

一、
select id,CNAME,SCORE,DCOUNT('ID','tblA','SCORE>=' & SCORE) as SNO
from tblA
order by 4


二、
select id,CNAME,SCORE,DCOUNT('ID','tblA','SCORE>' & SCORE)+1 as SNO
from tblA
order by 4


三、
select id,CNAME,SCORE,DCOUNT('ID','tblA','SCORE>' & SCORE & ' or (SCORE=' & SCORE & ' AND ID>=' & ID & ')' ) as SNO
from tblA
order by 4


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ACMAIN_CHM/archive/2010/01/03/5125291.aspx


Access软件网交流QQ群(群号:198465573)
 
 相关文章
Access查询 交流QQ群群号:54525238 欢迎学习acc...  【宏鹏  2012/10/26】
常见问答
技术分类
相关资源
文章搜索
关于作者

奇玉

文章分类

文章存档

友情链接