2013-06-25 73 views
1

這是我想要的簡化爲例:Transact-SQL:從不同的表中顯示兩個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 

但結果是錯誤的,我不知道該怎麼辦......有人能解釋我如何解決這個問題,並創建合適的查詢?

回答

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 
+0

它完美的工作,我不知道這個'伎倆',謝謝! – Alex