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