2013-01-31 61 views
0

我有兩個OLE DB數據源。一個具有列合併連接轉換 - 匹配多列

ID, 高級

和其他有

ID, 高級版, 成本

他們都在同一數據流和兩個分類。

我使用它們作爲合併加入轉換的來源。我已經告訴過它,身份證和保費都是可以匹配的。

我希望這個合併連接的輸出只有ID和Premium都匹配的行。相反,我似乎得到的行是匹配的任何Id或高級。

它被設置爲一個內部連接,因爲我不想讓空列/不匹配的列懸空。

有誰知道如何實現所需的輸出?我是否使用正確的轉換工具來實現這一目標?

+1

您應該使用查找轉換並查找成本並僅將匹配的輸出映射到目標表。希望這可以幫助! – Gowdhaman008

+1

@ Gowdhaman008的說法正是如此。除非您有理由使用'Merge Join Transformation',否則使用'Lookup Transformation'可以獲得更好的性能。並且,如果兩個OLE DB源位於同一個數據庫和/或實例中,只需編寫一個內部連接並讓數據庫處理它。它比SSIS更有效率,因爲它可以利用現有的索引,而SSIS將不得不在內存中構建它。 – billinkc

回答

2

您正在使用正確的轉換。但是,默認情況下,合併連接轉換將NULL值視爲相等。您可以通過將轉換的TreatNullsAsEqual屬性設置爲false來關閉此功能。這樣,您應該獲得與常規SQL查詢相同的結果。