根据条件将一个表中的数据移动到另一个表中

时间:2010-11-30 19:54:08

标签: sql sql-server-2008 ssis

我需要帮助找出解决问题的方法。

1。我有4张桌子

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

Clinet详细信息包含与客户端名称相关的数据,startdate,endingDate

ClientAccountDetails包含与特定客户相关的数据(即与其姓名,账户状态,资金相关的多个账户)

使用SSIS包我将Excel表格中的数据(与excel表格相关的数据是ClientAccountDetails)导入另一个名为IMPORTClientDetails的表格。

使用ssis包将所有数据导入表中。我会写一些查询,根据客户名称将其移入ClientAccountDetails表。

2。我的问题是

如果ClientDetails表中不存在IMPORTClientDetails的客户端名称,我希望将数据移动到ClientNotExistindata

如果IMPORTClientDetails中的客户端名称存在,那么我想将其移动到ClientAccountDetails

2 个答案:

答案 0 :(得分:1)

这可以通过两个简单的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);

答案 1 :(得分:1)

在SSIS中,您可以使用查找任务来检查IMPORTClientDetails中导入的ClientName行是否存在于ClientDetails中 - 如果没有匹配,则可以将它们发送到ClientNotExistindata。然后可以将匹配的行发送到ClientAccountDetails。