select
   (select sum(zc11.折前金额) from z_xstj_mc zc11 where rownum<10 ) as a,
   (select sum(zc33.折前金额)  from z_xstj_mc zc33 where rownum<10 ) as ab,
   (select sum(zc44.折前金额) from z_xstj_mc zc44 where rownum<10 ) as acc,
   (select sum(zc22.折前金额)  from z_xstj_mc zc22 where rownum<10 ) as ddb
from dual  
出现未明确定义列错误但是随便去掉一个列 
select
   (select sum(zc11.折前金额) from z_xstj_mc zc11 where rownum<10 ) as a,
   --(select sum(zc33.折前金额)  from z_xstj_mc zc33 where rownum<10 ) as ab,
   (select sum(zc44.折前金额) from z_xstj_mc zc44 where rownum<10 ) as acc,
   (select sum(zc22.折前金额)  from z_xstj_mc zc22 where rownum<10 ) as ddb
from dual 

select
   (select sum(zc11.折前金额) from z_xstj_mc zc11 where rownum<10 ) as a,
   (select sum(zc33.折前金额)  from z_xstj_mc zc33 where rownum<10 ) as ab,
   --(select sum(zc44.折前金额) from z_xstj_mc zc44 where rownum<10 ) as acc,
   (select sum(zc22.折前金额)  from z_xstj_mc zc22 where rownum<10 ) as ddb
from dual 
却能执行, 这是为什么啊 !!!

解决方案 »

  1.   

    有啊。。我的视图z_xstj_mc 这个比较复杂 执行的时间比较久。
    但是就是4个列 就不行。。3个列或2个列就没问题啊 。
      

  2.   

    不会,我测试都不会有这种情况!
    a01   a02      a03     a041 2 3 4
    2 3 4 5
    3 4 5 6
    4 5 6 7
    5 6 7 8
    6 7 8 9
    7 8 9 10
    8 9 10 11
    9 10 11 12
    10 11 12 13--SQL:
    select  
    (select sum(a01) from a where rownum<10) as b1,
    (select sum(a02) from a where rownum<10) as b2,
    (select sum(a03) from a where rownum<10) as b3,
    (select sum(a04) from a where rownum<10) as b4
    from dual
    --RESULT:
    B1      B2      B3      B4
    45 54 63 72
      

  3.   


    试一下这个......SELECT SUM(ZC11.折前金额) A,
           SUM(ZC11.折前金额) AB,
           SUM(ZC11.折前金额) ABC,
           SUM(ZC11.折前金额) ABCD
      FROM Z_XSTJ_MC ZC11
     WHERE ROWNUM < 10
      

  4.   

    真是奇了...
    针对该问题建议LZ写个FUNCTION,这样随时可调用...
      

  5.   

    SELECT SUM(ZC11.折前金额) A,
           SUM(ZC11.折前金额) AB,
           SUM(ZC11.折前金额) ABC,
           SUM(ZC11.折前金额) ABCD
      FROM Z_XSTJ_MC ZC11
     WHERE ROWNUM < 10
    这样写呢。。???????????
      

  6.   

    因为每一个(select..)里面的条件都不一样  所以 不能写成这样SELECT SUM(ZC11.折前金额) A, 
          SUM(ZC11.折前金额) AB, 
          SUM(ZC11.折前金额) ABC, 
          SUM(ZC11.折前金额) ABCD 
      FROM Z_XSTJ_MC ZC11 
    WHERE ROWNUM < 10
    会不会是执行语句的时候有什么限制什么的。我用其他表写成那样也没问题问题可能出现在z_xstj_mc视图里
    但是为什么4列就不可以 3列就可以 是不是什么参数限制了???