如何解决运算问题

image.png

各位,问题如下:需要按照票据类型的不同做加减运算,每个公司有个PO类型的期初数据,遇到应付金额就相加,遇到付款金额就相减,需要新增一个数据列,存放每一行的运算结果,数据需要循环累加或者累减,最后汇总得到当前供应商的最终数据

select ta.单据日期, ta.凭证编号,ta.应付款金额,ta.付款申请金额,ta.供应商编码,ta.供应商名称,ta.票据类型,ta.单据号,ta.备注,ta.币种,ta.应收应付标志,ta.结算方式,ta.审核人,ta.制单人,ta.到期日或修改日期

from (select ap.dVouchDate as 单据日期,ap.cPZNum as 凭证编号,ap.iAmount as 应付款金额,ap.cdefine5 as 付款申请金额,ap.cDwCode as 供应商编码,v.cVenName as 供应商名称 ,ap.cVouchType as 票据类型,ap.cVouchID as 单据号,case bStartFlag when 1 then '期初余额'   end as 备注/*数据属性*/,ap.cexch_name as 币种,ap.cFlag as 应收应付标志,ap.cDigest as 结算方式,ap.cDefine1 as 审核人,ap.cDefine1 as 制单人 ,ap.dmoddate as 到期日或修改日期

from Ap_Vouch ap,Vendor v

where bStartFlag=1/*期初余额表,数据正确*/ and ap.cdwcode=v.cVenCode

union all

select pb.dpbvdate as 开票日期,pbs.cPZNum as 凭证号,sum(isum)as 本期应付 /*本期应付*/ ,pb.cdefine5 as 备用列,pb.cVenCode as 供应商编码,v.cVenName as 供应商名称,case bFirst when 0 then '采购发票'   end as 单据类型 ,cPBVCode as 单据号 ,pb.cPBVMemo as 摘要,pb.cexch_name as币种 ,pb.cdefine1 as 备用列 ,pb.cdefine1 as 备用列,pb.cPBVVerifier as 审核人,cPBVMaker as 制单人,pb.dGatheringDate as 到期日

from PurBillVouch pb,PurBillVouchs pbs,Vendor v

where pb.pbvid=pbs.PBVID and pb.cVenCode=v.cvencode and pb.cVenCode=v.cVenCode

group by cPBVCode,pb.cPBVMemo ,pbs.cPZNum ,pb.cVenCode ,pb.cPBVVerifier ,cPBVMaker ,pb.cPBVCode ,pb.dGatheringDate ,pbs.PBVID,dpbvdate,bFirst,v.cVenName,pb.cDefine1,pb.cexch_name,cdefine5/*发票*/

union all

select ap.dvouchdate as 票据日期,ap.cDefine9 as 凭证编号,ap.cdefine5 as 备用列,aps.iApplyAmt as 本期付款申请金额 ,ap.cdwcode as 供应商编码,v.cVenName as 供应商名称,case cVouchType when 'AP40' then '付款申请单'end as 单据类型, ap.cVouchID as 单据号,ap.cdigest as 摘要,ap.cexch_name as 币种,cdefine1,ss.cSSName as 结算方式,ap.cCheckMan as 检查人,cdefine1,ap.dCloseDate as 关闭日期

from AP_ApplyPayVouch ap,AP_ApplyPayVouchs aps,Vendor v,SettleStyle ss

where ap.PID=aps.pid and ap.cDwCode=v.cVenCode and ap.cSSCode=ss.cSSCode/*付款申请表*/)ta

group by ta.供应商编码,ta.供应商名称,ta.单据日期, ta.凭证编号,ta.应付款金额,ta.票据类型,ta.单据号,ta.备注,ta.币种,ta.应收应付标志,ta.结算方式,ta.到期日或修改日期,ta.审核人,ta.制单人,ta.付款申请金额

zhangjinrui 发布于 2021-10-22 13:45 (编辑于 2021-10-22 13:45)
1min目标场景问卷 立即参与
回答问题
悬赏:5 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
zhangjinruiLv2见习互助
发布于2021-10-25 13:26

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-10-22 14:11

https://blog.csdn.net/u012324101/article/details/80251003 如果不会用 

就用存储过程吧

  • 0关注人数
  • 472浏览人数
  • 最后回答于:2021-10-25 13:26
    请选择关闭问题的原因
    确定 取消
    返回顶部