Dear 各位先進好
小弟 先各別按照日期範圍條件加 LA005 出入庫 ('-1' 或 '1'), 執行結果 數據資料是正確
領料加總 : 309549.810
退料加總 : 37.000
現在希望可以透過合併 JOIN 方式 把 "領料加總" 跟 "退料加總" 可以同時顯示在欄位資料上,
但 執行結果....退料加總 64639.000 卻是錯誤數據資料 (正確應該是 37.000)
以下是我 SQL 語法, 麻煩可以幫忙解惑更正語法, 銘心感謝 !!
-- -領料
SELECT LA001 AS 品號, SUM(LA011) 領料加總
FROM BUENO_VN..INVLA
WHERE LA004 BETWEEN '20140101' AND '20141231' AND LA014 = '3' AND LA005 = '-1'
AND LA001 LIKE '54F1VEZX0001%'
GROUP BY LA001
執行結果 :
品號54F1VEZX0001
領料加總 309549.810
-- 退料
SELECT LA001 AS 品號, SUM(LA011) 退料加總
FROM BUENO_VN..INVLA
WHERE LA004 BETWEEN '20140101' AND '20141231' AND LA014 = '3' AND LA005 = '1'
AND LA001 LIKE '54F1VEZX0001%'
GROUP BY LA001
執行結果 :
品號54F1VEZX0001
退料加總 37.000
-----------------------------
用合併 LEFT JOIN 方式
-- 合併JOIN方式
SELECT B1.MB001 AS 品號, B1.MB002 AS 品名, SUM(B2.LA011) AS C2, SUM(B3.LA011) AS C3
-- (CASE WHEN SUM(B2.LA011) IS NULL THEN 0 ELSE SUM(B2.LA011) END) AS 本期領料淨量
FROM
(SELECT * FROM BUENO_VN..INVMB
WHERE MB001 LIKE '54F1VEZX0001%' ) AS B1
LEFT JOIN
(SELECT * FROM BUENO_VN..INVLA
WHERE LA004 BETWEEN '20140101' AND '20141231' AND LA014 = '3' AND LA005 = '-1') AS B2
ON B1.MB001 = B2.LA001
LEFT JOIN
(SELECT * FROM BUENO_VN..INVLA
WHERE LA004 BETWEEN '20140101' AND '20141231' AND LA014 = '3' AND LA005 = '1') AS B3
ON B1.MB001 = B3.LA001
GROUP BY B1.MB001, B1.MB002
ORDER BY B1.MB001
執行結果 :
品號 54F1VEZX0001
領料加總 309549.810
退料加總 64639.000 -----> 錯誤數據資料 (正確應該是 37.000)
Looking Ahead on Request
「Wish you all the best」 Thanks a lot and Have a Nice Day!!
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.