我试图得到两个表之间的差异总和,但我一直得到错误的结果
Table1 Table2
| product | quantity | | product | quantity |
| -------- | -------- | | -------- | -------- |
| a | 7 | | a | 2 |
| b | 8 | | b | 4 |
| c | 9 | | c | 1 |
| c | 7 | | c | 3 |
| a | 3 | | a | 2 |
| b | 4 | | b | 3 |
我尝试了此查询,但得到了错误的值:
select table1.product, sum(table1.quantity) - sum(table2.quantity) as difference
from table1
join table2 on table1.product = table2.product
group by table1.product,table2.product;
预期成果
表一
| 积|差|
| - ------|- ------|
| 项目a|六个|
| B|五个|
| (c)秘书长的报告|十二|
1条答案
按热度按时间kr98yfug1#
UNION ALL
表(其中-quantity
表示表2。)GROUP BY
结果。根据要求-一些评论:
作为一般建议,在连接之前使用
GROUP BY
(在子查询中)更安全-因为JOIN
可能导致一个值有多行。此外,要包含仅在其中一个表中找到的产品,则需要使用外连接。