Поиск строк с повторяющимися данными в MS Access

У меня есть большая таблица, в которой среди прочего есть фамилия и дата рождения. Мне нужно написать запрос, который возвращает только те строки, в которых фамилии и даты рождения совпадают с таковыми в другой строке таблицы.

Это таблица, содержащая информацию о людях, подавших заявку. Я хочу выделить тех, кто подавал заявки более одного раза.

Я могу придумать способ сделать это, используя операции над наборами, но MS Access, похоже, их не реализует.

Спасибо за вашу помощь.


person Community    schedule 05.06.2009    source источник
comment
Пожалуйста, опубликуйте свои «установленные операции», тогда, возможно, кто-нибудь подскажет, можно ли их реализовать в Access/ACE/Jet.   -  person onedaywhen    schedule 06.06.2009


Ответы (3)


MS Access имеет встроенный мастер построения запросов для поиска дубликатов.

http://www.databasedev.co.uk/query-wizard.html

person DJ.    schedule 05.06.2009

Есть ли вероятность, что фамилия была немного неправильно набрана? Либо случайно, либо намеренно человеком, либо фамилия могла быть написана по-разному в зависимости от исходного языка человека.

Если это так, рассмотрите возможность использования алгоритма Soundex или первых двух или трех символов имени и фамилии. Если вы собираетесь использовать алгоритм Soundex, я бы посоветовал сначала обновить таблицу значением поля Soundex, а не вычислять его по мере открытия позиции.

person Tony Toews    schedule 05.06.2009
comment
Я считаю, что алгоритм Soundex2 намного полезнее, чем исходный Soundex, потому что в последнем совпадения слишком свободны, чтобы их можно было использовать. - person David-W-Fenton; 06.06.2009
comment
Я даже не знал о Soundex2. Также я подумал после того, как написал, что в Северной Америке может быть гораздо больше разнообразия фамилий, поскольку Soundex изначально создавался как алгоритм. - person Tony Toews; 07.06.2009

Как упомянул DJ, в Access есть мастер для поиска дубликатов. Этот мастер использует предложение HAVING. Итак, если вы говорите, что хотите «сделать это на SQL», я бы посоветовал прочитать HAVING.

person Adrien    schedule 05.06.2009