select r1.city_code,r1.city_name,r2.* from
(SELECT sum(decode(b.sale_code,00002607,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00002607_10002_10043  ,  sum(decode(b.sale_code,00003921,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00003921_10002_10043  ,  sum(decode(b.sale_code,00003931,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00003931_10002_10043  ,  sum(decode(b.sale_code,00004207,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00004207_10002_10043  ,  sum(decode(b.sale_code,00004210,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00004210_10002_10043  ,  sum(decode(b.sale_code,00004214,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00004214_10002_10043  ,  sum(decode(b.sale_code,00004216,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00004216_10002_10043  ,  sum(decode(b.sale_code,00004219,1,0)*decode(c.brand_code,10002,1,0)*decode(c.style_code,10043,1,0)) a00004219_10002_10043  from tb_mobile_stock c,sphonesalcfg b,tb_sal_imei a   where a.imei=c.imei and b.sale_code = a.sale_code  group by  c.region_code) r2,(select c.region_code city_code,count(*) sumall from tb_mobile_stock c,sphonesalcfg b,tb_sal_imei a   where a.imei=c.imei and b.sale_code = a.sale_code  group by c.region_code)r3  where r1.city_code=r2.city_code(+) and r1.city_code=r3.city_code(+) and r2.city_code=r3.city_code 
由于我有很多的sum语句,所以出现了这个错误,有什么好的方法可以解决吗?

解决方案 »

  1.   

    你的语句简化就是这样的       select b.t1,b.t2,c.*   from
            ( select sum(a1),sum(a2),... from a,b,c where a.id=c.id and b.code=a.code group by c.code) b,
             (select c.code,count(*) sumall from a,b,c where a.id=c.id and b.code=a.code group by c.code) c
             
             where a.code=b.code(+) and a.code=b.code(+) and b.code=c.code(+)这样的语句要是不出错才怪。建议,搂主,一步一步来,必要搞这种可读性差到连自己都搞不懂的语句。。呵呵。。