0
我有一个SQL查询:MS SQL条件加入
SELECT * FROM Customer c
LEFT JOIN Invoice I ON I.InvcNum = C.Cust_InvcNum
一些事情改变和连接不起作用,因为没有在数据中的“Cust_InvcNum”没有一致性。所以现在,当它没有找到连接的记录或者它是空的,它需要检查另一个条件。
LEFT JOIN Invoice I ON I.InvcNum = (SELECT p.InvcPrefix FROM Prefix WHERE p.DealerID = I.DealrID) + '-' + I.InvcNum
第二次加入我做的工作,但它需要太长的时间才能得到我的数据。有没有其他的方式来做到这一点。
此前它曾经是
加入上I.InvcNum = C.Cust_InvcNum
都列有像DlrCd-InvcNum即相同的数据均列1234-A789 但不是可以匹配的上述数据还是现在在发票表 可以填充像Dlrd-InvcNum或InvcPrefix-InvcNum列“InvcNum”
所以InvcNum = 1234-A789但CustNum = I94-A789 所以我们需要检查是否进行InvoicePrefix -InvcNum
您可以发布一些您试图加入的示例数据吗?理解你想要做的事情可能会更容易。 – Taryn
这可能可以通过在连接的ON中使用'OR Cust_InvcNum IS NULL AND othercondition'来完成,但是我们需要查看一些数据。 –
你看过执行计划,看看性能问题在哪里吗? – HABO