我試圖實現SSIS如下:SSIS NOT EXISTS在一個數據流
聯盟所有6個獨立的SQL查詢(OLE DB源)(這個數據集A) 數據集包含
id Col A Col B......
1
2
3
4
5
6
7
8
我還有一個OLE DB源的SQL查詢(數據集B)包含
id Col A Col B .......
1
2
3
4
10
11
12
所有列柱A,色柱B等在所有查詢相同。
我想有一些在執行前盟與數據集B返回數據集被聯合(UNION ALL),其中在數據集B中的ID不匹配的數據集A的IDS即
id Col A Col B......
1
2
3
4
5
6
7
8
10
11
12
而且在數據集B上完成額外的工作以填充列中的NULL值。
我可以非常容易地將數據集A插入表中,然後在隨後的NOT EXISTS或類似查詢中使用此表來獲取缺失的信息,然後將UNIONing放在一起。理想情況下,儘管我希望通過雙向多點傳送進行一次掃描,一側進入查找不匹配,另一側進入目標表。
不幸的是,查找和不匹配輸出返回「錯誤」的缺失數據,即返回
5
6
7
8
而不是
10
11
12
這是因爲查找(數據集B)和源數據(數據集A)是「錯誤的方式」。我不想重寫數據集A作爲查找查詢,所以有另一種方法使用不同的轉換或其他方法?
我已經嘗試過緩存轉換,但它似乎不像查找轉換那樣在查找轉換的同一數據流中工作,因爲存在讀/寫爭用。
謝謝, 豐富。
感謝您的快速回復。我假設我可以在Lookup中選擇駕駛數據集,並使用No Match Output。你的方法很好,但爲了我的需要矯枉過正。我只需將數據集A插入到結果表中,然後將該結果表作爲使用數據集B的另一個查詢的一部分並將其並用2。 –