Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

ACCESS如何实现分组排序并自动生成递增数字的标记字段

access2017  发表于:2017-08-05 21:54:33  
复制

请教一个问题,如例子:表1
列1        列2
A        30
A        31
A        32

A        32

A        33


B        33

B        34

B        34
B        35

B        36


C        36
C        36

C        37
C        38

C        39
想得到新的表
列1        列2        标记
A        30        1
A        31        2
A        32        3

A        32       4

A        33       5

 

B        33        1
B        34        2
B        34       3

B        35        4

B        36         5


C        36        1
C        36        2
C        37        3

C        38        4

C        39        5
就是根据列1分组,再根据列2排序,按列2的数值大小排序,并自动生成递增数字的标记字段,若列2有重复值,自动生成的数字依然能按顺序递增!现有SQL语句:SELECT b.列1, b.列2, (SELECT count(*)+1 as dd FROM [表1] as a  where a.[列1]=b.[列1] and a.[列2]<b.[列2]) AS 标记
FROM 表1 AS b
ORDER BY b.列1, b.列2;

结果为

列1        列2        标记
A        30        1
A        31        2
A        32        3

A        32       3

A        33       5

 

B        33        1
B        34        2
B        34       2

B        35        4

B        36         5


C        36        1
C        36        1
C        37        3

C        38        4

C        39        5

,该SQL语句不能对列2重复值数据记录进行递增编号,请各位大侠指导一下,如何修改上述SQL语句,以实现列2重复值记录仍能按顺序递增!谢谢!

 

Top
MDZZ 发表于:2017-08-07 08:48:41
这种写法是改不了了  

access2017 发表于:2017-08-10 14:22:22
试了下,增加一个值是唯一的字段,是可以实现的。但遇到了查询速度特别慢,且查询结果不全的情况。有没有哪位高手能用简单的方法实现?

蒋元根 发表于:2017-08-12 12:12:20

在学习了王樵民和竹笛老师的方法上做的。供参考。

点击下载此附件



总记录:3篇  页次:1/1 9 1 :