2012-11-27 60 views
1

我有两个表如下: -从表中添加两列具有相同的结构

  Table 1      Table 2 
     date  value    date  value 
     1120101 v11    1120102 v21 
     1120202 v12    1120303 v22 
     1120203 v13    1120104 v23 

什么是SQL查询来获取以下输出

 date   value 
     1120101  (v11) 
     1120102  (v12+v21) 
     1120103  (v13+v22) 
     1120104  (v23) 

我累了下面的查询,但未能获得所需的输出

select table1.date, 
     table2.date, 
     table1.delta+table2.delta as delta 
from table1, 
    table2 
where table1.date=table2.date; 

在此先感谢。

+0

你的表1和表2是不同的日期......那是什么说'1120202规则'表1中的'1和'1120102'应该连接在输出中? – Tim

回答

2

与子查询和工会发挥:

SELECT 
    c.date, 
    COALESCE(a.value, 0) + COALESCE(z.value,0) 
FROM (
    SELECT 
     date 
    FROM table1 
    UNION 
     SELECT date 
    FROM table2 
) AS c 
LEFT OUTER JOIN table1 a 
    ON a.date = c.date 
LEFT OUTER JOIN table2 z 
    ON z.date = c.date 
相关问题