我有2个表tbl1和tbl2,其中两个都有[PartID]和[Amount]以及[Date]列。
我想要一个查询返回这样的内容:
PartID | Date | SUM_tbl1 | SUM_tbl2
PartID 1可能在tbl1中但不在tbl2中,反之亦然,每个PART ID在两个表中都有多行。
我希望两个SUM列显示该表中每个Part ID的SUM。我想在2017年6月30日看到SUM。
请帮忙!谢谢!
答案 0 :(得分:2)
最简单的?首先,使用UNION将单个表与您需要的原始行组合在一起:
select PartID, Date, Amt as Table1Entry, NULL as Table2Entry from tbl1
UNION ALL
select PartID, Date, NULL as Table1Entry, Amt as Table2Entry from tbl2
...接下来,既然您已将两个表格的数据放在一起,只需将其作为子查询求和:
select PartID, Date, Sum(Table1Entry) as SumTable1, Sum(Table2Entry) as SumTable2
from
(
select PartID, Date, Amt as Table1Entry, NULL as Table2Entry from tbl1
UNION ALL
select PartID, Date, NULL as Table1Entry, Amt as Table2Entry from tbl2
) mySubquery
GROUP BY PartID, Date