Игнорирование дубликатов на основе критериев, кроме одного - PullRequest
1 голос
/ 21 февраля 2020

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

Например, на приведенном ниже снимке экрана у нас есть две записи для номера политики "4204556734" на одну и ту же дату начала. Я хочу удалить строку с Плохим ранжированием и сохранить лучший из вариантов, т. Е. Отлично. Я создал столбец Survey_number для использования функции MAX (), но это тоже не работает. Я знаю, что должен предоставить запрос, который попробовал, но на самом деле ничего не работает, поэтому я его пропускаю.

enter image description here

1 Ответ

1 голос
/ 21 февраля 2020

Вы можете использовать коррелированный подзапрос:

select t.*
from t
where t.survey_number = (select max(t2.survey_number)
                         from t as t2
                         where t2.policynumber = t.policynumber and
                               t2.startdate = t.startdate
                        );
...