2017-01-16 57 views
3
Select p.prodCode, 
     p.description, 
     p.unit, 
     SUM(sd.quantity) "Total quantity" 
FROM salesDetail sd 
RIGHT JOIN product p 
    ON p.prodCode = sd.prodCode 
GROUP BY p.prodCode 
ORDER BY 4 DESC 

Help!我的腳本沒有運行。我需要得到每個產品的總數量,但是我的組沒有工作。DB2中的GROUP BY AND RIGHT JOINS

回答

1

計算在分開的子查詢每個產品的數量的總和,然後加入此回原始product表:

SELECT t1.prodCode, 
     t1.description, 
     t1.unit, 
     t2.total_quantity 
FROM product t1 
INNER JOIN 
(
    SELECT p.prodCode, SUM(sd.quantity) total_quantity 
    FROM product p 
    LEFT JOIN salesDetail sd 
     ON p.prodCode = sd.prodCode 
    GROUP BY p.prodCode 
) t2 
    ON t1.prodCode = t2.prodCode 

注意,我通過切換連接的順序替換RIGHT JOINLEFT JOIN子查詢中的表。

更新:

如果你絕對需要使用RIGHT JOIN,則只需更換這個子查詢:

SELECT p.prodCode, SUM(sd.quantity) total_quantity 
FROM salesDetail sd 
RIGHT JOIN product p 
    ON p.prodCode = sd.prodCode 
GROUP BY p.prodCode 
+0

我需要只使用RIGHT JOIN執行我的腳本,可以請你幫忙我呢? – AGK

+0

嗨,Oliver,檢查我的更新,只需交換連接中的表順序,並用'RIGHT'替換'LEFT',就是這樣。 –

+0

你好。對不起,我忘了我只允許使用RIGHT JOIN。我無法使用Inner Join。 :( – AGK