不知道为什么你的不可以~~我这么做就可以了
select *
from(Select cntunn,
sum(case when a.cntlct = '001' and CNTTES in ('0','1') then a.cntlbo
when a.cntlct <>'001' and CNTTES in ('0','1') then a.cntlbo*b.ratval else 0 end)/10000 as zcall01,
sum(case when a.cntlct = '001' and CNTTES in ('0') then a.cntlbo
when a.cntlct <>'001' and CNTTES in ('0') then a.cntlbo*b.ratval else 0 end)/10000 as zc01,
sum(case when a.cntlct = '001' and CNTTES in ('1') then a.cntlbo
when a.cntlct <>'001' and CNTTES in ('1') then a.cntlbo*b.ratval else 0 end)/10000 as gz01,
sum(case when a.cntlct = '001' and CNTTES in ('2','3','4') then a.cntlbo
when a.cntlct <>'001' and CNTTES in ('2','3','4') then a.cntlbo*b.ratval else 0 end)/10000 as blall01,
sum(case when a.cntlct = '001' and CNTTES in ('2') then a.cntlbo
when a.cntlct <>'001' and CNTTES in ('2') then a.cntlbo*b.ratval else 0 end)/10000 as cj01,
sum(case when a.cntlct = '001' and CNTTES in ('3') then a.cntlbo
when a.cntlct <>'001' and CNTTES in ('3') then a.cntlbo*b.ratval else 0 end)/10000 as ky01,
sum(case when a.cntlct = '001' and CNTTES in ('4') then a.cntlbo
when a.cntlct <>'001' and CNTTES in ('4') then a.cntlbo*b.ratval else 0 end)/10000 as ss01
from defcntpf a,base_nacsxrt b
where to_char(cntsdt,'yyyymmdd') = '20050729'
and b.gendate='20050729' and (a.cntscd1 <>'0795' or a.cntscd1 is null)
and substr(a.cntlcn,1,1) not in ('A','B','C')
and a.cntlct=b.curcde
group by cntunn)
where rownum<10