来自多个表的sql sum数据以及来自两个表

时间:2017-11-09 17:56:55

标签: sql ms-access

我有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。

请帮忙!谢谢!

1 个答案:

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