我很难合并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;
这是我到目前为止尝试过的方法,但是没有效果。
答案 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;