У меня есть список записей:
UniqueID
110000
110000
110001
110002
110002
110002
И хотите получить результат того, сколько раз показывает каждая запись, например:
UniqueID times
110000 1
110000 2
110001 1
110002 1
110002 2
110002 3
Моя кодировка такая:
SELECT m.UniqueID,
(SELECT Count(*)
From [Query1] AS m2
Where m2.UniqueID =m.UniqueID And m2.Order1 <= m.Order1) AS COL2b
FROM [Query1] AS m;
Это даст мне результат "Недопустимый аргумент для функции", и код сработает, если я удалю аргумент порядка1, например
SELECT m.UniqueID,
(SELECT Count(*)
From [Query1] AS m2
Where m2.UniqueID =m.UniqueID) AS COL2b
FROM [Query1] AS m;
И если я изменю код на count (B.Num1) и создам новый запрос, код выдаст мне результат «Введите значение параметра A.Order1», например:
SELECT A.UniqueID, (Select Count(B.Num1)
From [Query1] As B
Where B.UniqueID = A.UniqueID AND B.Order1 <= A.Order1) AS COL2b
FROM [Query1] AS A
ORDER BY A.UniqueID;
Я уверен, что есть проблема с полем Order1 или доступом. Как я могу это исправить?
Для справки: Num1 - это список из 1.
Query1 выглядит как
UniqueID Num1 Order1
110000 1 1
110000 1 2
110001 1 3
110002 1 4
110002 1 5
110002 1 6
и SQL-код доступа для запроса 1:
SELECT A.UniqueID, A.Num1, (Select Count(B.Num1)
From [TableRecords] As B
Where B.UniqueID <= A.UniqueID) AS Order1
FROM [TableRecords] AS A
ORDER BY A.UniqueID;