我現在有兩個表A和B,A中有全部資料,B中只有部分資料,然后我用A中字典減去B中欄位,當B為空時,減0,但是我這樣寫了,查詢出來結果為空,哪位大神幫我看看應該怎么寫
select a.pluid,a.ckcode,
sum((A.KcCount-(case when B.XsCount is null then 0 else B.XsCount end))) as kc
from tStkLsKc A , tSalWtzPluDetail b
where a.pluid=b.pluid and a.pluid='10000000772' and b.DataType in ('0', 'A', 'B', 'C', '7')
group by a.pluid,a.ckcode
uj5u.com熱心網友回復:
樓主給一些示例資料,和你的預期結果。uj5u.com熱心網友回復:
select a.pluid,a.ckcode,用nvl函式,比你原來那個可讀性好一點,至于你說的為空,那是資料問題,沒有滿足條件的資料
sum(A.KcCount-nvl(B.XsCount,0)) as kc
from tStkLsKc A , tSalWtzPluDetail b
where a.pluid=b.pluid and a.pluid='10000000772' and b.DataType in ('0', 'A', 'B', 'C', '7')
group by a.pluid,a.ckcode
uj5u.com熱心網友回復:
樓主表達的意思比較模糊是A表匹配B表中資料 B表沒有對應記錄則XsCount記作0,還是對應B表記錄中XsCount值為NULL則XsCount記作0
前者需要外關聯 后者nvl即可
uj5u.com熱心網友回復:
3樓正解
uj5u.com熱心網友回復:
對頭,得用外連接 ,看了半天都沒看出道道,一下就點出了真諦轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/102137.html
標籤:開發
上一篇:兩張表資料一樣 一張表增加資料 怎么樣讓另一張表也增加
下一篇:sql優化
