2
重复的实例的数量使用Access 2010中查询也要算和增加的这个记录
所以,如果我有一个表
COL1
A
B
A
C
A
和运行查询我会得到在COL2输出其中'A'被重复三次并且其COL2值依次递增。
COL1 | COL2
A | 1
B | 1
A | 2
C | 1
A | 3
重复的实例的数量使用Access 2010中查询也要算和增加的这个记录
所以,如果我有一个表
COL1
A
B
A
C
A
和运行查询我会得到在COL2输出其中'A'被重复三次并且其COL2值依次递增。
COL1 | COL2
A | 1
B | 1
A | 2
C | 1
A | 3
将一个字段添加到您的表中。选择AutoNumber作为其数据类型,并将其作为表的主键。我叫现场ID,所以我对你的样本数据的版本看起来像这样...
ID COL1
1 A
2 B
3 A
4 C
5 A
下方回报的SELECT
声明此结果集...
ID COL1 COL2a COL2b
1 A 1 1
2 B 1 1
3 A 2 2
4 C 1 1
5 A 3 3
COL2a和COL2b显示2种方法来实现相同的结果。 DCount是Access特定的,并且需要围绕m.COL1
文本值引用。第二种方法,COL2b,使用相关的子查询,所以可以在不同的数据库中工作,如果你选择。用这种方法,你不需要为引用文本值而烦恼。
这两种方法基本上都需要db引擎为结果集的每一行运行附加查询。所以,在一个巨大的桌子上,表现会是一个问题。索引将在那里帮助。如果还没有人,请在COL1
上添加索引。 ID
已经有一个索引,因为它是主键。
如果你不能添加一个字段,并且表中还没有包含其他合适的字段,那么我认为你的运气不好。您将无法通过Access查询获取所需内容。
SELECT
m.ID,
m.COL1,
DCount(
"*",
"MyTable",
"COL1 = '" & m.COL1 & "' AND ID <= " & m.ID
) AS COL2a,
(
SELECT Count(*)
FROM MyTable AS m2
WHERE m2.COL1 = m.COL1 AND m2.ID <= m.ID
) AS COL2b
FROM MyTable2 AS m
ORDER BY m.ID;
您的表是否有ID列? SQL表本质上是无序的,所以您需要另一列来指定排序。 –
它可以很容易地有一个id我已经从简单的例子中删除了这个例子 - 所以如果它有一个ID col任何想法? – megaSteve4