Transact-SQL:显示来自不同表的两个SUM()?

时间:2013-06-25 09:19:09

标签: sql database tsql sum

这是我想要的简化例子:

表1:

CODE | VALUE
A    | 10
A    | 20
B    | 10
C    | 20

表2:

CODE | VALUE2
A    | 25
B    | 10
B    | 10
D    | 20

这就是我想要的:

CODE | SUM(VALUE) | SUM(VALUE2)
A    | 30         | 25
B    | 10         | 20
C    | 20         | NULL
D    | NULL       | 20

我天真地试了一下:

SELECT T1.CODE, SUM(VALUE), SUM(VALUE2)
FROM table1 T1
LEFT OUTER JOIN table2 T2
ON T1.CODE = T2.CODE
GROUP BY T.CODE

但结果是错误的,我不知道该怎么做......有人可以解释我如何解决这个问题并创建一个正确的查询?

1 个答案:

答案 0 :(得分:5)

可能是这样的吗?

select code, sum(v1), sum(v2)
  from (select code, value v1, null v2
          from table1
        union
        select code, null v1, value2 v2
          from table2)
 group by code