Sql 在两列上合并两个表,但值列不同-MS Access

Sql 在两列上合并两个表,但值列不同-MS Access,sql,ms-access,Sql,Ms Access,我很难合并两个表,每个表都有不同的值列和两个相同的列 表1列出了各列;项目,Mnth,左 表2列出了各列;项目,Mnth,总计 我试图实现一个有四列的表;项目,Mnth,左,总计。并按项目和Mnth聚合Left和Total以及分组的总和,因此每一行相对于项目和Mnth是唯一的 SELECT Proj AS Project, Mnth, Left FROM Table1 UNION ALL SELECT Project, Mnth, Total FROM Table2 GROUP BY Proj

我很难合并两个表,每个表都有不同的值列和两个相同的列

表1列出了各列;项目,Mnth,左

表2列出了各列;项目,Mnth,总计

我试图实现一个有四列的表;项目,Mnth,左,总计。并按项目和Mnth聚合Left和Total以及分组的总和,因此每一行相对于项目和Mnth是唯一的

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

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

您可以尝试为表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;

您可以尝试为表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;

请回答您的问题,并根据这些数据添加一些内容和预期输出。请(您的问题-请勿在评论中发布代码或其他信息)@a_horse_,其名称已用MS Access标记更新。请回答您的问题,并根据该数据添加一些内容和预期输出。请(您的问题-请勿在评论中发布代码或其他信息)@a_horse_,其名称已用MS Access标记更新。