繁体   English   中英

将两个表中的列相加然后合并表

[英]Summing columns in two tables then joining tables

我以相同的方式设置了两个表,但它们的值不同。 以下是每个样本:

表格1:

Date        Code       Count
1/1/2015    AA         4
1/3/2015    AA         2
1/1/2015    AB         3

表2:

Date        Code       Count
1/1/2015    AA         1
1/2/2015    AA         0
1/4/2015    AB         2

我希望结果表包含所有唯一的日期代码对,并且表之间的任何重复项都要将两个计数加起来。

输出表:

Date        Code       Count
1/1/2015    AA         5  /*Summed because found in Table1 and Table2*/
1/2/2015    AA         0
1/3/2015    AA         2
1/1/2015    AB         3
1/4/2015    AB         2

我没有主键来连接两个表,而我尝试过的联接要么没有保留所有不同的日期代码对,要么创建了重复项。

作为参考,我正在SAS proc sql语句中执行此操作。

我目前在路上,所以我还没有跑过,但是:

SELECT  date ,
        code ,
        SUM([count])
FROM    ( SELECT    *
          FROM      table1
          UNION ALL
          SELECT    *
          FROM      table2
        ) [tables]
GROUP BY date ,
        code
ORDER BY date ,
        code

会成功的。 我将在加入版本时遇到麻烦,并在使用适当的计算机前进行编辑

编辑:

完全外部联接和COALESCE也会执行此操作,尽管速度稍慢,所以这可能取决于您在那里进行的其他操作!

SELECT  COALESCE(#table1.date, #table2.date) ,
    COALESCE(#table1.code, #table2.code) ,
    ISNULL(#table1.COUNT, 0) + ISNULL(#table2.COUNT, 0)
FROM    #table1
    FULL OUTER JOIN #table2 ON #table2.code = #table1.code
                               AND #table2.date = #table1.date
ORDER BY COALESCE(#table1.date, #table2.date) ,
    COALESCE(#table1.code, #table2.code)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM