写了一个存储过程
--这个SQL语句字段里有fb.bbye
    insert into wl_tmptable3 select zb.dwbm,fb.fb_oid,fb.jfybje,fb.jfbbje,fb.vouchid,fb.ksbm_cl,fb.szxmid,fb.bzbm,zb.djbh,zb.zyx1,zb.zyx2,fb.zyx1,fb.zyx2,fb.zyx3,
    fb.zyx4,fb.zyx9,fb.zyx15,zb.djdl,fb.ybye,fb.dfybje,fb.dfbbje,fb.bbye,zb.ts,zb.lrr,zb.dr,zb.djrq,fb.bbhl,'',zb.prepay from  arap_djfb fb ,arap_djzb  zb
    where fb.ts<=EndTime and zb.dwbm=k_pk_corp    and fb.vouchid=zb.vouchid     and  zb.djzt>=2 and zb.hzbz is null  and  fb.bbye<>0
    and ((( zb.djdl ='ys'  or zb.djdl='sk')   and fb.wldx=0 ) or (( zb.djdl ='yf'  or zb.djdl='fk')   and fb.wldx=1));
--下面这个SQL语句字段里也有fb.bbye
        insert into wl_tmptable3 select  clb.dwbm,clb.dydjfbid as  fb_oid,clb.jfclybje as jfybje,clb.jfclbbje as jfbbje,clb.vouchid,fb.ksbm_cl,
    fb.szxmid,fb.bzbm,zb.djbh,zb.zyx1,zb.zyx2,fb.zyx1,fb.zyx2,fb.zyx3,
    fb.zyx4,fb.zyx9,fb.zyx15,zb.djdl,fb.ybye,fb.dfybje,fb.dfbbje,fb.bbye,zb.ts,zb.lrr,zb.dr,zb.djrq,fb.bbhl,clb.clrq from  arap_djclb clb,
     arap_djfb fb ,arap_djzb  zb
      where clb.dydjfbid=fb.fb_oid and fb.vouchid=zb.vouchid and  clb.ts>=BeginTime   and clb.ts<=EndTime
    and  clb.dwbm=k_pk_corp   and  clb.djdl in ('ys','sk','yf','fk');
这两个SQL语句中都有fb.bbye,同时都插入到一个临时表中,我现在想做一个事情,就是上面和下面两个SQL语句的fb.bbye要做一个相加,条件是相同的表单,因为临时表里的数据要在另外一个SQL语句中当一个查询表使用
打一个比方,2010年10月1号到2010年11月5号抽出了一批数据,我想反查2010年10月30号的数,我要把两个SQL的fb.bbye想相加可以做一个反查

解决方案 »

  1.   

    我上面有2个SQL语句,里面有相同的字段,我现在想把条件相同的上下两个SQL的辅表本币余额做一个相加,因为上述两个SQL语句都是插入到同一个表中,这个表我要当成下一个SQL语句的查询表,所以我在下一个SQL语句中得到的本币余额是上面两个本币余额相加的和,我应该怎么做,谢谢
      

  2.   

    两个结果的字段类型一致的话
    你把两个sql union all在外面分组
      

  3.   

    唉,两个SQL语句起的作用不一样啊,一个是取为倾向的余额,一个是取已核销的余额,所以不能用你说的union all这个啊,还有其它方法么
      

  4.   

    写的好复杂啊,既然都插到表wl_tmptable3 中了,那么wl_tmptable3 中必有一个存储FB.BBYE的字段,你的要求是对相同"表单"的FB.BBYE求和,我觉得可以如下查询:
    SELECT 表单,SUM(FB.BBYE)
    FROM   WL_TMPTABLE3
    GROUP  BY 表单