DB2 中的 GROUP BY 和 RIGHT JOIN

GROUP BY AND RIGHT JOINS IN DB2

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

求助!我的脚本不是 运行。我需要获取每种产品的总量,但我的分组依据不起作用。

在单独的子查询中计算每个产品的数量总和,然后将其连接回原始 product table:

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

请注意,我通过切换子查询中加入的 table 的顺序将 RIGHT JOIN 替换为 LEFT 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