2017-01-16 47 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