обновить строки таблицы, где значения столбцов отличаются от других таблиц - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть 2 таблицы с одной и той же схемой, одна - просто таблица, в которую загружаются данные, а другая - моя живая таблица.Я хочу обновить живую таблицу из загруженной таблицы, где строки отличаются.Я думаю, что я здесь довольно близко, но где на самом деле вступит в силу мое ОБНОВЛЕНИЕ?

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

SELECT USC.* FROM UpdateStagingCustomers AS USC
JOIN StagingCustomers AS SC
ON USC.CustomerNumber = SC.CustomerNumber
AND USC.ManufacturerID = SC.ManufacturerID
WHERE USC.ManufacturerID=18 AND SC.ManufacturerID = 18
    AND USC.CustomerNumber IN(
        SELECT CustomerNumber FROM StagingCustomers WHERE ManufacturerID=18
    )
    AND 
    (
    USC.Address1 <> SC.Address1 OR
    USC.Address2 <> SC.Address2 OR
    USC.AuthorizedDealer <> SC.AuthorizedDealer OR
    USC.City <> SC.City
    )

1 Ответ

2 голосов
/ 09 ноября 2011

Я верю, что этот оператор SQL справится с этой задачей, но вы можете проверить его в откатанной транзакции.

UPDATE StagingCustomers 
SET Address1 = USC.Address1, 
    Address2 = USC.Address2, 
    AuthorizedDealer = USC.AuthorizedDealer,
    City = USC.City
FROM UpdateStagingCustomers AS USC
JOIN StagingCustomers AS SC
ON USC.CustomerNumber = SC.CustomerNumber
AND USC.ManufacturerID = SC.ManufacturerID
WHERE USC.ManufacturerID=18 AND SC.ManufacturerID = 18
    AND USC.CustomerNumber IN(
        SELECT CustomerNumber FROM StagingCustomers WHERE ManufacturerID=18
    )
    AND 
    (
    USC.Address1 <> SC.Address1 OR
    USC.Address2 <> SC.Address2 OR
    USC.AuthorizedDealer <> SC.AuthorizedDealer OR
    USC.City <> SC.City
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...