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