【发布时间】:2020-01-06 17:38:32
【问题描述】:
Table Header
+---------+-------+
| ref | total |
+---------+-------+
| 2544 | 2000 |
| 2544 | 10 |
| 2545 | 2566 |
| 2545 | 34 |
+---------+-------+
Table Items
+---------+-------+
| ref | total |
+---------+-------+
| 2544 | 1500 |
| 2544 | 500 |
| 2545 | 2000 |
| 2545 | 500 |
| 2545 | 100 |
+---------+-------+
我想对按 ref 分组的两个表中的总列求和,所以我的输出看起来像:
Output:
+---------+--------------+-------------+
| ref | total_header | total_items |
+---------+--------------+-------------+
| 2544 | 2010 | 2000 |
| 2545 | 2600 | 2600 |
+---------+--------------+-------------+
然后我可以比较两个总列并检查差异。
查询:
Select
Header.ref,
Sum(Header.total) as total_header
From
Header
Group By
Header.ref
Order By
Header.ref Desc
这为我提供了 Header 表的正确信息。一旦我将 Items 表添加到查询中,total_header 和 total_items 就会给出错误的值
这是我正在使用的查询....
Select
Header.ref,
Sum(Header.total) as total_header,
Sum(Items.total) as total_items
From
Header Left Join
Items On Header.ref = Items.ref
Group By
Header.ref
Order By
Header.ref Desc
谁能帮我创建一个可以产生上述输出的查询?此外,如果可能的话,使用另一列比较 2 个总列,根据它们是否匹配给出真或假。
谢谢,
马丁。
【问题讨论】:
-
你应该在每张表上识别 PRIMARY KEY