如果可以使用單個表進行INNER JOIN,但條件不同? 我想知道是否有可能以以下查詢合併爲一個:連接表時的多個條件
UPDATE st
SET st.GLAccount = gt.GLAccount
FROM StockTransactions st
INNER JOIN GLTransactions gt ON gt.TransactionID = st.PurchaseTransactionID
AND gt.Quantity IS NOT NULL AND st.Item = gt.Item
Go
UPDATE st
SET st.GLAccount = gt.GLAccount
FROM StockTransactions st
INNER JOIN GLTransactions gt ON gt.TransactionID = st.ID AND st.Item = gt.Item
AND (st.Type = 160 OR st.Type = 165)
GO
UPDATE st
SET st.GLAccount = gt.GLAccount
FROM StockTransactions st
INNER JOIN GLTransactions gt ON gt.TransactionID = st.ID AND st.Item = gt.Item
AND gt.LineType = 1
GO
是的,它是可能的,你可以在'join'使用'或'。但是,這可能會返回多個結果 - 應該使用哪個結果? – sgeddes 2014-10-04 03:15:11
如果我使用OR,性能會受到影響嗎? – Afflatus 2014-10-04 03:57:07
單個查詢應該比三個查詢快 - 但一如既往,自己嘗試一下。我所指的是,如果你的第一個陳述更新賬戶的價值,你的第二個或第三個可以改變這個價值。更新值時,最好對預期結果進行明確。 – sgeddes 2014-10-04 04:00:49