Как удалить дубликаты строк и сохранить их в базе данных Access? - PullRequest
0 голосов
/ 12 октября 2018

I got too many entry like this in my database

Мне нужно удалить дубликаты строк в моей базе данных Access, у кого-нибудь есть общий запрос для этого?Как у меня эта проблема с несколькими таблицами

1 Ответ

0 голосов
/ 12 октября 2018

Вам нужно сделать две вещи:

  1. Определить критерии для уникальной записи - что такое список столбцов, в которых две или более записейбудет считаться дубликатами, например, JobbID и HisGuid
  2. Решите, что вы хотите сделать с дублирующимися записями - хотите ли вы их жестко удалить, или установите флаг 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, так как у меня на компьютере, которым я сейчас пользуюсь, не установлено, и моя память немного заржавела относительно того, как/ где выполнять произвольные запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...