select * from (select fsyrq,fsclx,fmc,sum(fyz) fyz from allkpzjxx group by fsyrq,fsclx,fmc) a full outer join 
        (select c.fbdrq fbdrq,c.fsclx fsclx,c.fmc fmc,sum(c.fyz) fyz from 
        (select fbdrq,fsclx,fmc,sum(fyz) fyz from allkpzjxx group by fbdrq,fsclx,fmc,fzt 
         having fzt= '41' or fzt='42' or fzt = '43' or fzt = '51') c group by c.fbdrq,c.fsclx,c.fmc) b 
         on to_char(a.fsyrq,'yyyy-mm-dd') = to_char(b.fbdrq,'yyyy-mm-dd') and a.fmc = b.fmc and a.fsclx = b.fsclx; 

解决方案 »

  1.   

    全部都加上别名。select * from (select d.fsyrq,d.fsclx,d.fmc,sum(d.fyz) fyz from allkpzjxx d group by d.fsyrq,d.fsclx,d.fmc) a full outer join 
            (select c.fbdrq,c.fsclx,c.fmc,sum(c.fyz) fyz from 
            (select e.fbdrq,e.fsclx,e.fmc,sum(e.fyz) fyz from allkpzjxx e group by e.fbdrq,e.fsclx,e.fmc,e.fzt 
             having e.fzt= '41' or e.fzt='42' or e.fzt = '43' or e.fzt = '51') c group by c.fbdrq,c.fsclx,c.fmc) b 
             on to_char(a.fsyrq,'yyyy-mm-dd') = to_char(b.fbdrq,'yyyy-mm-dd') and a.fmc = b.fmc and a.fsclx = b.fsclx; 
      

  2.   

    还不行,这是表结构 名称     是否为空? 类型 FBDRQ        DATE
     FZ           CHAR(2)
     FYZ          NUMBER
     FSYRQ        DATE
     FZCMC        CHAR(20)
     FMC          NOT NULL CHAR(30)
     YZJL         NUMBER
     FZYBM        NOT NULL CHAR(1)
     FDLBM        NOT NULL CHAR(2)
     FXLBM        NOT NULL CHAR(2)
     FSXH         NOT NULL CHAR(6)
     FSCLX        NOT NULL CHAR(10)
     FZJL         NOT NULL NUMBER(24,3)
     FYTZJ        NOT NULL NUMBER(24,3)
     FYTNX        NOT NULL NUMBER(24,3)
     FQLE         NOT NULL NUMBER(24,3)
     FBYZJ        NOT NULL NUMBER(24,3)
     FJZ          NOT NULL NUMBER(24,3)
     FCZL         NOT NULL NUMBER(24,3)
     FCZE         NOT NULL NUMBER(24,3)
     FNZJV        NOT NULL NUMBER(24,3)
     FZCLB        NOT NULL CHAR(2)
     FTJRQ        DATE
     FYJTZJ       NOT NULL NUMBER(24,3)
      

  3.   

    瞧瞧你的表中哪有fzt 这个字段?
      

  4.   

    是我写错了,fz为fzt
    我这个语句在左外联和右外联多好使,就是全外联不好使。