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
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