Перемещение данных из одной таблицы в другую на основе условия - PullRequest
0 голосов
/ 30 ноября 2010

Мне нужна помощь в поиске решения моей проблемы.

1. У меня есть 4 стола

a. CLientdetails
b. ClientAccountDetails
c. ClientExistingData
d. ClientNotExistindata.

Сведения о Clinet содержат данные, относящиеся к имени клиента, начальной дате, конечной дате

ClientAccountDetails содержит данные, относящиеся к конкретному клиенту (то есть несколько учетных записей, связанных с его именем, состоянием счета, деньгами)

используя пакет служб SSIS, я импортирую данные из листа Excel (данные, относящиеся к листу Excel, относятся к ClientAccountDetails) в другую таблицу с именем IMPORTClientDetails.

когда все данные импортируются в таблицу с использованием пакета ssis. я бы написал какой-нибудь запрос, чтобы переместить его в таблицу ClientAccountDetails на основе имени клиента.

2. Мой вопрос

Если имя клиента из IMPORTClientDetails не существует в таблице ClientDetails, я хочу, чтобы данные были перемещены в ClientNotExistindata

если имя клиента из IMPORTClientDetails существует, то я хочу переместить его в ClientAccountDetails

Ответы [ 2 ]

1 голос
/ 01 декабря 2010

В службах SSIS вы можете использовать задачу поиска, чтобы проверить, существуют ли импортированные строки ClientName из IMPORTClientDetails в ClientDetails - если совпадений нет, их можно отправить в ClientNotExistindata.Соответствующие строки затем могут быть отправлены в ClientAccountDetails.

1 голос
/ 30 ноября 2010

Это можно сделать с помощью двух простых операторов INSERT / SELECT.

INSERT INTO ClientAccountDetails(COLUMN1,COLUMN2, ETC)
SELECT COLUMN3,COLUMN4, ETC
FROM IMPORTClientDetails ICD
WHERE ICD.Client IN (SELECT Client FROM ClientDetails);

INSERT INTO ClientNotExistindata(COLUMN1,COLUMN2, ETC)
SELECT COLUMN3,COLUMN4, ETC
FROM IMPORTClientDetails ICD
WHERE ICD.Client NOT IN (SELECT Client FROM ClientDetails);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...