ms-access查询需要连接编号或计数

时间:2017-10-24 10:28:21

标签: sql vba ms-access

表水果

FName
-----
orange
apple
apple
3mango
orange
orange
apple
mango

我想要一个带有计数结果的查询。

orange-1
apple-1
apple-2
mango-1
orange-2
orange-3
apple-3
mango-2

2 个答案:

答案 0 :(得分:3)

在MS SQL Server中,它将是一个简单的ROW_NUMBER()窗口函数,因此您只需要MS Access中的等效函数。但为此,您需要在表格中添加id列,因为您需要执行自我加入

此处的解决方案:Achieving ROW_NUMBER / PARTITION BY in MS Access

declare @tbl as table (
    id int
    ,fname varchar(15)
)

insert into @tbl values (1,'orange')
insert into @tbl values (2,'apple')
insert into @tbl values (3,'apple')
insert into @tbl values (4,'mango')
insert into @tbl values (5,'orange')
insert into @tbl values (6,'orange')
insert into @tbl values (7,'apple')
insert into @tbl values (8,'mango')

SELECT 
    t1.id
    ,t1.fname
    ,COUNT(*) AS [Ino Seq]
FROM 
    @tbl AS t1
    INNER JOIN
    @tbl AS t2
        ON t2.fname = t1.fname
        and t1.id >= t2.id
GROUP BY t1.id, t1.fname

答案 1 :(得分:1)

如果添加ID(自动编号),则可以将此功能与水果名称一起用作组密钥:

import os
os.system('echo abc && echo -ne \\x00 > file && echo efg')

请参阅有关典型用法的内嵌评论。