现有两张表T1 ,T2T1
eventid eventcount1
10003 240000
40001 230000
30001 220000
20007 210000
70002 121000
T2
eventid eventcount2
20007 210000
30010 130000
70002 100000现我要得出下面的结果
eventid eventcount1 eventcount2
10003 240000 0
40001 230000 0
30001 220000 0
20007 210000 0
70002 121000 0
30010 0 13000请问SQL 怎么写 谢谢
eventid eventcount1
10003 240000
40001 230000
30001 220000
20007 210000
70002 121000
T2
eventid eventcount2
20007 210000
30010 130000
70002 100000现我要得出下面的结果
eventid eventcount1 eventcount2
10003 240000 0
40001 230000 0
30001 220000 0
20007 210000 0
70002 121000 0
30010 0 13000请问SQL 怎么写 谢谢
SELECT A.EVENTID,NVL(T1.EVENTCOUNT1,0) EVENTCOUNT1, NVL(T2.EVENTCOUNT2,0)
FROM
(SELECT eventid FROM T1 UNION SELECT EVENTID FROM T2) A LEFT JOIN T1 ON A.EVENTID=T1.EVENTID LEFT JOIN T2 ON A.EVENTID=T2.EVENTID)
from
(select eventid from t1 union select eventid from t2)a
left join t1 b on a.eventid=b.eventid
left join t2 c on a.eventid=c.eventid
from t1,t2
where t1.eventid=t2.eventid(+)
union
select t2.eventid,nvl(t1.eventcount,0),t2.eventcount2
from t1,t2
where t1.eventid(+)=t2.eventid
nvl(t1.eventcount1,0) eventcount1,
decode(nvl(t1.eventcount1,0), 0,nvl(t2.eventcount2,0), 0) eventcount2
from
(select eventid from t1 union select eventid from t2)t,t1,t2
where t.eventid=t1.eventid(+) and t.eventid=t2.eventid(+)
union all
select eventid , 0 eventcount1 , eventcount2 from T2 WHERE T2.eventid NOT IN (SELECT eventid FROM T1) ;