две разные базы данных (данные были скопированы из одной 2 другой) и сравнить их данные - PullRequest
1 голос
/ 26 декабря 2010

У меня есть две базы данных ... старая структура и новая структура ...

Я написал конвертер, который копирует данные из старого в новый ...

мои записи в одной из таблиц старых БД около 100000 (Таблица А в старом БД -> Таблица Б в новом БД)

Моя проблема заключается в том, что при копировании данных в новую базу данных количество записей в исходной и целевой таблицах не совпадают из-за условий моего конвертера / среднее:

(Таблица A в старом БД = 100000-> Таблица B в новом БД = 98000)

Не могли бы вы узнать, как мне написать запрос, показывающий те записи, которые находятся в таблице A, но отсутствуют в таблице B //

Таблицы A и B имеют разные структуры /, но некоторые из их полей отображаются с разными именами, и я должен использовать эти поля. 4 выберите ...

означает что-то вроде этого:

use old,new
select * from old.A
where
old.A.name <> new.B.Name
and
old.A.pey <> new.B.Pay
and
old.A.num <> new.B.Amount

но верхний код неверен (синтаксис) в sql server / есть ли способ 4 этого выбора?

спасибо в будущем заранее

С наилучшими пожеланиями

1 Ответ

3 голосов
/ 26 декабря 2010
SELECT * FROM old.A WHERE old.A.name NOT IN (SELECT Name FROM new.B)

Это вызовет все записи из исходной таблицы, которые не были скопированы в новую таблицу.Помните, что это синтаксис MySQL, поэтому вам может потребоваться адаптировать его для SQL Server 2008.

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

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