我正在创建一个SSIS包,它将比较两个表,然后在另一个表中插入数据。
我应该使用哪种工具?我尝试使用“条件分割”,但看起来它只需要一个表作为输入而不是两个。
这些是我的表格:
TABLE1
ID
状态
TABLE2
ID
状态
表3
ID
状态
我想在两个表中比较STATUS字段。如果TABLE1中的Status为“Pending”,而TABLE2中的Status为“Open”,则在TABLE3中插入此记录。
答案 0 :(得分:11)
如果您的表格不大,您可以使用完全缓存进行Lookup
转换,但我不推荐它,因为如果您的表格增长,您将遇到问题。我知道我做了。
我建议Merge Join
转换。您的设置将包括以下内容:
Sort
转换,因为Merge Join
转换需要排序输入;我想你需要使用ID来匹配记录,所以这将是一个排序标准Merge Join
转换以连接(左和右)数据流Conditional Split
转换以检测表中是否存在正确的状态Derived Column
以引入您必须插入目标表的数据)This should help,正如文章解释几乎确切的问题/解决方案。
答案 1 :(得分:4)
我设法使用Execute SQL Task
工具并在其中编写以下查询。
INSERT INTO TABLE3 (ID, Status)
SELECT * FROM TABLE1 t1, TABLE2 t2
WHERE t1.ID = t2.ID and t1.status = 'Pending' and t2.status = 'Open'
答案 2 :(得分:2)
我认为这就是你要找的东西。?
如果两个表都是Sql表,那么请按照以下步骤进行操作
sql代码
select b.id,b.status
from table1 a
join table2 b on a.id = b.id
where a.status = 'Pending' and b.status = 'open'
我认为这对你有用。