ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » Oracle Developer Suite » 这个视图怎么建?

标题: 这个视图怎么建?
离线 yangyanming
初级会员



精华贴数 0
个人空间 0
技术积分 32 (38442)
社区积分 0 (86109)
注册日期 2003-5-21
论坛徽章:0
      
      

发表于 2003-6-3 14:42 
这个视图怎么建?

我有两个基本表分别为;
select * from WFA;                              
__________________________
name1   age1    score1
a        12      90
b        13      98     
c        24      78
d        78      79

select * from WFB;
____________________________
name2   age2    score2
a        12       88
b        13       99
c        20       90
我希望通过这两个表建一个视图WFC
然后有select * from WFC; 得到如下结果
——————————————————————————
name    age      score1  score2
a       12        90       88
b       13        98       99
c       24        78        
c       20                 90
d       78        79
这就是我想得到的结果。  但是我不知道这个视图如何建,希望各位大哥帮个忙!
小弟万分感谢。 如果我的意思没有表达明白,我随时补充。


只看该作者    顶部
离线 faroad
中级会员



精华贴数 0
个人空间 0
技术积分 470 (4194)
社区积分 0 (80430)
注册日期 2003-3-12
论坛徽章:1
      
      

发表于 2003-6-3 17:26 
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


__________________
岁月堆积财富,我最大的财富就是结识你
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问