在2列但值列不同的地方合并2个表-MS Access

时间:2018-08-20 13:16:43

标签: sql ms-access

我很难合并2个表,每个表具有不同的value列和2个相同的列。

Table1包含列; Proj,Mnth,左

Table2具有列;项目,Mnth,总计

我正在尝试建立一个包含四列的表;项目,Mnth,左,总计。并汇总Left和Total的总和,并按项目和Mnth分组,因此每行相对于Project和Mnth都是唯一的。

SELECT Proj AS Project, Mnth, Left 
FROM Table1
UNION ALL
SELECT Project, Mnth, Total
FROM Table2
GROUP BY Project, Mnth;

这是我到目前为止尝试过的方法,但是没有效果。

1 个答案:

答案 0 :(得分:3)

您可以尝试为表1和表2中的缺失列分配0值,并在合并后进行求和汇总。

在某些数据库中,剩下的也是保留字,因此您可能需要使用引号来避免语法错误。

select  Project , Mnth , sum("left") as Left , sum(Total) as Total
from 
(
    SELECT Proj AS Project, Mnth, a."left" , 0 as Total FROM Table1 a
        UNION ALL
    SELECT Project, Mnth, 0 as Left, Total FROM Table2 b
) t
GROUP BY Project, Mnth;