Как удалить дубликаты в базе данных доступа с несколькими отношениями один ко многим - PullRequest
0 голосов
/ 30 января 2020

Итак, я только начал работу, и все наши данные находятся в этой ужасной базе данных без проверки входных данных или защиты от изменения данных. Я еще не очень хорошо знаком с управлением базами данных, хотя я работаю над этим, и мне нужно полировать sh эту какашку, если хотите. Существует несколько таблиц с одинаковыми данными, скопированными из одной таблицы в другую, без связей, в которых они имеют смысл. Одна конкретная таблица не имеет первичных ключей, и каждая запись дублируется как минимум один раз, а иногда и до четырех раз. Это модемная база данных. Field1 - это имя_ модема, Field2 - это версия программного обеспечения, field3 - это форма сигнала, остальные поля - данные, относящиеся к этой форме сигнала. и «программное обеспечение 1.2.3» в field2 и многие поля, которые говорят «waveformX» в field3 и т. д. c. Мне нужно удалить дубликаты записей, но я не понимаю, как заставить запрос проверять все поля как одну целую запись, а не отдельные поля. Потому что, скажем, у modemA и modemB есть версия программного обеспечения 1.0, и оба используют waveformX и waveformY, но «modemA» & «1.0» & «waveformX» отличается от «modemA», а «1.0» и «waveformY» отличаются от «modemB "&" 1.0 "&" waveformX "и т. Д. ...

Интересно, лучше ли просто разбить все это на отдельные таблицы с соответствующими отношениями один ко многим. Я не могу go просмотреть 7k записей и удалить все остальные, и я не могу понять, как сложить все поля вместе, чтобы отфильтровать лишнее.

Ответы [ 3 ]

1 голос
/ 30 января 2020

Я бы предложил сначала сделать резервную копию в качестве меры предосторожности, прежде чем пытаться что-либо предпринять.

Чтобы определить уникальные строки в таблице, вы можете использовать следующий запрос:

SELECT DISTINCT * from TableName

Вы можете создайте новую таблицу из этого запроса, используя следующий метод таблицы:

https://support.office.com/en-us/article/create-a-make-table-query-96424f9e-82fd-411e-aca4-e21ad0a94f1b

0 голосов
/ 30 января 2020

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

Если я правильно понимаю, что вы проверяете все поля как одну запись, не могли бы вы сделать из них составной первичный ключ? Таким образом, Access будет считать дубликаты записей только в том случае, если ВСЕ поля имеют одинаковые значения.

0 голосов
/ 30 января 2020

Вы можете объединить все соответствующие поля в 1 строку, а затем сгруппировать по этой строке. Это даст вам запрос с уникальными записями.

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