在我的項目中,我有一個合併連接轉換,它使用內部連接。它應該將文件查找與其餘的數據流結合起來。然而,聯合似乎不包括一些行,包括文件,即使它應該?我試圖模擬tsql中的連接,但我似乎做錯了,因爲它顯示我缺少的行。SSIS合併連接缺少行(以及如何模擬與tsql查詢的SSIS連接)
下面是我想加盟 輸入A輸出:
SELECT *
FROM
tblExpense expense
OUTER APPLY(
SELECT TOP 1 *
FROM tblExpenseDtl Details
WHERE expense.intExpenseID = Details.intExpenseID
ORDER BY Details.sintLineNo
) details
WHERE
expense.dtUpdateDateTime > '2017-06-01'
ORDER BY expense.intExpenseID desc
輸入B:
SELECT f.*
FROM dbo.tblExpense e
JOIN tblExpenseDtl d ON d.intExpenseID = e.intExpenseID
JOIN tblExpReceiptFile f ON f.intExpenseDtlID = d.intExpenseDtlID
WHERE
e.dtUpdateDateTime > '2017-06-01'
ORDER BY e.intExpenseID desc
而且,我認爲會產生相同的結果,我的SSIS SQL查詢內部連接
SELECT *
FROM
tblExpense expense
OUTER APPLY(
SELECT TOP 1 *
FROM tblExpenseDtl Details
WHERE expense.intExpenseID = Details.intExpenseID
ORDER BY Details.sintLineNo
) details
inner join (SELECT f.*
FROM dbo.tblExpense e
JOIN tblExpenseDtl d ON d.intExpenseID = e.intExpenseID
JOIN tblExpReceiptFile f ON f.intExpenseDtlID = d.intExpenseDtlID
WHERE
e.dtUpdateDateTime > '2017-06-01'
ORDER BY e.intExpenseID desc
) innerJ
WHERE
expense.dtUpdateDateTime > '2017-06-01'
ORDER BY expense.intExpenseID desc
SSIS中的連接鍵是expense.intExpenseID = e.intExpenseID
。
輸入A給出了1行,用expenseID = X,和輸入B合併之前給出2行與expenseID = X
爲什麼你要使用一個合併連接,當你可以用一個SQL命令做一個OLE DB源中的所有事情? – TheEsnSiavashi