我試圖計算2個相關表上的2個值之間的差異。加入 - 在兩個表上使用過濾器的左連接,如果不匹配則返回零
SELECT a.[Batch No_], b.[Lot No_], b.[Open], a.[Current Stock], b.Amount, a.[Batch Value]
FROM [sb] AS a LEFT OUTER JOIN
[ile] AS b ON a.[Batch No_] = b.[Lot No_]
WHERE (a.[Current Stock] = 1) AND (b.[Open] = 1)
我想從某人的所有記錄的(a)將被返回,其中現有存貨= 1 我想從ILE(b)所有匹配的記錄將被返回,其中開放式= 1
問題是,如果沒有匹配的記錄,我仍然希望返回sb(a)字段,並將b.Amount設置爲0.
有多個記錄,其中b.Open = 0,被退回。
我該如何解決這個問題?我看到涉及COALESCE一個解決方案,但我不能讓它工作
感謝
無論何時將'WHERE'條件放在'B'表中的任何列上,您都有效地將您的'LEFT JOIN'變爲'INNER'。您需要將這些條件移至「ON」子句,如下面的答案所示。 –