MS Access: как подсчитать повторяющиеся строки? - PullRequest
2 голосов
/ 03 августа 2011

Мой стол выглядит так ...

PersonID    Data1    Data2
1           XXXX     YYYY
1           BBBB     YYYY
2           BBBB     YYYY
3           XXXX     YYYY

Мне бы хотелось, чтобы он выглядел так ...

PersonID    SubRank    Data1    Data2
1           1          XXXX     YYYY
1           2          BBBB     YYYY
2           1          BBBB     YYYY
3           1          XXXX     YYYY

Самое близкое решение, которое я придумалвыглядит так ... (ID - это уникальный идентификатор доступа к базе данных)

SELECT TABLE.PersonID, DCount("ID","Table","(PersonID='"&[PersonID]&"')",) AS SubRank, Table.Data1, Table.Data2
FROM Table
ORDER BY Table.PersonID;

Но это возвращает только общее значение для уникальных строк (т. е. Subrank равен "2" оба раза для PersonID # 1),В конечном итоге этот запрос будет подавать кросс-таблицу, чтобы получить все данные для одного personID в одну строку.

Я получил решение, приведенное выше: http://www.ozgrid.com/forum/showthread.php?t=39231&page=1

Я хотел бы достичь той же цели, однако их код просто не работает.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 августа 2011

Ваша цель здесь немного расплывчата. Хотите узнать количество дубликатов? Хотите отменить дублирование? Почему бы не сделать это:

SELECT count (*), Данные1, Данные2 ИЗ таблицы GROUP BY Данные1, Данные2

0 голосов
/ 03 августа 2011

Вам необходимо сузить домен.В решении вы можете видеть, что он имеет

and 
(Date <= #" & [Date] & "#)")

внутри функции dcount.Так что вам нужно сделать что-то подобное, хотя я думаю, что вы будете использовать ID вместо даты.Может быть, что-то вроде этого:

DCount("ID","Table","(PersonID='"&[PersonID]&"') and (PersonID <= " & [PersonID] & ")" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...