2
我試圖從單個查詢中得到結果,即使未找到某行時也顯示數量的總和。Oracle SQL:來自具有多個連接和條件的表的總和
該查詢不正是我想要的東西:
select max(m.item_number), max(m.item_description),
max(m.uom), sum(nvl(i.qty_ordered,0))
from (((dex.ITEM_MASTER m FULL JOIN dex.order_request_items i ON m.item_number = i.item_number)
FULL JOIN dex.order_request h ON h.orderid = i.orderid)
FULL JOIN dex.customer c ON h.customer_number = c.customer_number)
where m.item_number in ('199', '198', '11415', '11425', '11435', '1145', '766')
group by m.item_number
order by 1
並返回此
MAX(M.ITEM_NUMBER) MAX(M.ITEM_DESCRIPTION) MAX(M.UOM) "SUM(NVL(I.QTY_ORDERED,0))"
11415 Bananas HALF CASE GREEN 1/2 0
11425 Bananas HALF CASE GREEN TIP 1/2 0
11435 Bananas HALF CASE RIPE 1/2 0
1145 Bananas HALF CASE 1/2 5
198 Watermelons SEEDLESS EACH 0
199 Watermelons EACH 80
766 Pumpkins EACH EACH 0
這將顯示爲沒有數量就好行零。當我添加需要縮小數據的附加條件時,會出現問題。 我需要同樣的結果與附加條件在此查詢
select max(m.item_number), max(m.item_description),
max(m.uom), sum(nvl(i.qty_ordered,0))
from (((dex.ITEM_MASTER m FULL JOIN dex.order_request_items i ON m.item_number = i.item_number)
FULL JOIN dex.order_request h ON h.orderid = i.orderid)
FULL JOIN dex.customer c ON h.customer_number = c.customer_number)
where m.item_number in ('199', '198', '11415', '11425', '11435', '1145', '766')
and h.REQUEST_DELIVERY_DATE = TO_DATE('10/24/2012', 'MM/DD/YYYY')
and c.subcontractorid is null
and h.request_state <> 'Incomplete'
group by m.item_number
order by 1
該查詢返回,雖然這個結果。
MAX(M.ITEM_NUMBER) MAX(M.ITEM_DESCRIPTION) MAX(M.UOM) "SUM(NVL(I.QTY_ORDERED,0))"
199 Watermelons EACH 31
應顯示爲零的行現在已消失。當使用附加條件時,是否有可能像第一個結果一樣顯示所有行?
謝謝!
在回答此問題之前,我們需要查看數據;我的猜測是你正在篩選數量爲零的記錄,因爲你已經添加了附加條件? – fras85