Вам нужно сделать две вещи:
- Определить критерии для уникальной записи - что такое список столбцов, в которых две или более записейбудет считаться дубликатами, например, JobbID и HisGuid
- Решите, что вы хотите сделать с дублирующимися записями - хотите ли вы их жестко удалить, или установите флаг IsDeleted, который у вас есть натаблица
После того, как вы определили критерии, которые вы хотите использовать для уникальности, вам нужно выбрать 1 запись из каждой группы дубликатов для сохранения.Запрос в следующем виде:
SELECT MAX(ID)
FROM MyTable
GROUP
BY JobbID, HisGuid
даст вам (и я предположил, что столбец ID
является столбцом с автоинкрементом / идентификатором, который уникален для всех записей в таблице) максимальное значение для каждой группы записей, где JobbID
и HisGuid
являются одинаковыми.Вы можете использовать MIN(ID)
, если хотите, это ваше дело - вам просто нужно выбрать ОДНУ запись из каждой группы , чтобы сохранить .
Предполагая, что вы хотите установить IsDeleted
пометить записи, которые вы не хотите хранить, затем вы можете включить это в запрос на обновление:
UPDATE MyTable
SET IsDeleted = 1
WHERE ID NOT IN
(
SELECT MAX(ID)
FROM MyTable
GROUP
BY JobbID, HisGuid
)
. Получает результат запроса, который получает самые высокие идентификаторы ииспользует это, чтобы сказать установить IsDeleted
в 1 для всех записей, где идентификатор не является наибольшим идентификатором для каждой группы записей, где JobbID
и HisGuid
одинаковы .
Единственная часть, с которой я не могу вам помочь - это выполнение этих запросов в Access, так как у меня на компьютере, которым я сейчас пользуюсь, не установлено, и моя память немного заржавела относительно того, как/ где выполнять произвольные запросы.