如果可以使用单个表进行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