|
create or replace view wfc as
select wfab.name name,wfab.age age, decode (
decode( sum(nvl(wfab.score1,0))
,0 ,null,
sum(nvl(wfab.score1,0)
)
)
, null,decode(sum(wfab.score2),
0,null,sum(wfab.score2)),decode(sum(nvl(wfab.score1,0)) ,
0 ,null,
sum(nvl(wfab.score1,0)
)
)
) score1,
decode( decode( sum(wfab.score2),
0,null,
sum(wfab.score2)
) ,
null,null,
decode (
decode( sum(nvl(wfab.score1,0))
,0 ,null,
sum(nvl(wfab.score1,0)
)
)
, null,decode(sum(wfab.score2),
0,null,sum(wfab.score2)),decode(sum(nvl(wfab.score1,0)) ,
0 ,null,
sum(nvl(wfab.score1,0)
)
)
),null,
decode( sum(wfab.score2),
0,null,
sum(wfab.score2)
)
) score2
from
(
select a.name1 name,a.age1 age,a.score1 score1, 0 score2
from wfa a
union all
select b.name12 name,b.age2 age,0 score1, b.score2 score2
from wfb b
) wfab
group by wfab.name,wfab.age;
select * from wfc;
/
1 a 12 90 88
2 b 13 98 99
3 c 20 90
4 c 24 78
5 d 78 79
|