2016-12-08 2 views
1

У меня есть два отчета. Тот, который был создан три недели назад, другой несколько дней назад. Эти отчеты содержат одни и те же поля (Фамилия, Имя, SSN и т. Д.), Но данные, очевидно, разные. Мы отредактировали отдельные поля. SSN клиента может быть отредактирован, чтобы отразить ошибку ввода данных. Их адресная информация могла быть обновлена.Запрос для определения изменений в наборе данных?

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

1) Когда мы экспортировали данные в Excel, идентификатор записи не был сохранен. Один клиент может иметь несколько записей для учета разных адресов, поэтому их SSN не будет уникальным. 2) Нам нужно не только идентифицировать изменения. Мы должны классифицировать их. Если в SSN произошли изменения, сообщите об этом отдельно, чем изменения, внесенные в адрес.

Итак, если я должен был импортировать два файла в базу данных, есть ли запрос, который может исправить это для меня? Мы с моей командой уже много времени думаем об этом, и мы ничего не думали. Без уникального идентификатора записи, на каком поле (-ях) мы должны ссылаться?

Если вы хотите, чтобы я был более конкретным в отношении любой части вопроса, сообщите мне, и я сделаю все, что в моих силах, чтобы помочь вам помочь.

Отчетов в файле Excel, экспортированный из запроса побежал в MS Access 2013.

Спасибо.

+0

Во-первых, если вы собираетесь импортировать в базу данных, используйте более совместимый, такой как SQL Server Express. Во-вторых, импорт данных в базу данных не будет * исправлять * проблему. Если вы знаете SQL, тогда это может облегчить манипулирование данными и определить, что вы хотите знать. –

ответ

0

Таким образом, у вас нет PK в отчете, поскольку вы потеряли его при экспорте в Excel. Предполагая, что вы не можете его восстановить, вам не повезло, если нет еще чего-то, что можно количественно оценить как ПК.

Что я буду делать, если я вам это импортировать оба файла отчета в виде отдельных таблиц: table_old table_new

Тогда я сделаю минус заявление для устранения точных копий:

select * from table_old 
minus 
select * from table_new 

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

select * from table_new 
minus 
select * from table_old 

Это даст вам изменения и/или новые/удаленные записи.

Это, как говорится, единственный реальный способ классифицировать записи - это включить SSN в это. Отсутствие ПК сделает это очень неточной наукой, но, потеряв ПК, вам придется жить с этим близким, а не точным.

+0

Удивительный отклик. Не знал, что существует минус-функция. Так что теперь у меня есть вопрос. Функция минус покажет мне и записи, которые были добавлены, и записи, которые были удалены. Это большой кусок проблемы. Итак, с этими новыми наборами записей, могу ли я выполнить другую минус-функцию, скажем, поля SSN, специальности и адреса? Это должна быть уникальная комбинация, и она вытащила бы все записи, где было отредактировано одно из этих полей. Правильно ли я думаю об этом или есть более простое решение? – Steven

+0

Имеет смысл, что вы можете это сделать.Все, что делает MINUS, говорит: «Что есть в населении, которое не имеет точной копии в населении B» Итак, да, вы могли бы установить что-то там, где вы внезапно используете SSN в качестве ПК и ищете изменения адреса, или наоборот , и это сработает. Не будет самым чистым решением, но в программировании чистых данных в наши дни редкость! – fleetmack

Смежные вопросы