先进先出的数据冲销处理
--示例数据:
createtable销售订单(单号varchar(10),日期datetime,货品编码varchar(10),数量int)
insert销售订单
select'A1','2005-5-1','ABCD',100unionall
select'A2','2005-5-3','ABCD',200unionall
select'A3','2005-5-4','ABCD',300unionall
select'A4','2005-5-8','ABCD',500
createtable销售发货单(单号varchar(10),日期datetime,货品编码varchar(10),数量int)
insert销售发货单
select'B1','2005-5-05','ABCD',250unionall
select'B2','2005-5-07','ABCD',100unionall
select'B3','2005-5-10','ABCD',150'
GO
问题描述:
对于示例数据中的销售订单和销售发货单,由于客户在做销售发货时无法指定本次是要发那一张订单的东西。所以销售订单无法与销售发货单关联。客户要求以先进先出的方式统计销售订单的执行情况。对于示例数据,要求结果如下:
单号日期 货品编码订单数量发货数量待执行数量
---------------------------------------------------------------------------------------
A12005-05-01ABCD100 100 0
A22005-05-03ABCD200 200 0
A32005-05-04ABCD300 200 100
A42005-05-08ABCD500 0 500
合计 1100 500 600
--查询处理的过程
select
a.单号,a.日期,a.货品编码,
订单数量=a.数量,
发货数量=isnull(casewhena.s数量<b.数量thena.数量elseb.数量-a.p数量end,0),
待执行数量=casewhena.s数量<b.数量then0elsea.s数量-isnull(b.数量,a.p数量)end
into#from(
select单号,日期=convert(char(10),日期,120),货品编码,
数量=sum(数量),
p数量=isnull((selectsum(数量)from销售订单
where货品编码=a.货品编码
and(datediff(day,日期,min(a.日期))>0
ordatediff(day,日期,min(a.日期))=0and单号<a.单号)),0),
s数量=isnull((selectsum(数量)from销售订单
where货品编码=a.货品编码
and(datediff(day,日期,min(a.日期))>0
ordatediff(day,日期,min(a.日期))=0and单号<=a.单号)),0)
from销售订单a
groupby单号,convert(char(10),日期,120),货品编码
)a
leftjoin(
select货品编码,数量=sum(数量)
from销售发货单
groupby货品编码
)bona.货品编码=b.货品编码
anda.p数量<b.数量
orderbya.单号,a.日期,a.货品编码
select*from#
unionall
select'','','合计',sum(订单数量),sum(发货数量),sum(待执行数量)from#
droptable#
原帖地址
分享到:
相关推荐
红字冲销法:又称红字更正法也称红字调整法,即先用红字编制一套与错账完全相同的记账凭证,予以冲销,然后再用蓝字编制一套正确的会计分录(全额冲销)。 红字更正法:当多记金额时,还可采用红字更正法更正,将多记...
用于批量冲销生产订单报工数据,跟进生产订单AFRU中的确认号和计数器识别唯一性,然后进行批量冲销,为了防止工单占用被锁定,每次运行后等下1秒后执行下一条数据
增值税发票红字冲销流程-红字发票冲销汇编.docx
K3-MRP锁单冲销算法.doc
FB08冲销各原因研究及测试
SAP系统记账的时候不能直接用负数记账,但提供反记账功能以实现红字冲销
冲销学习很关键,记住这些事物代码你一定回冲销了。
sap标准系统FI、MM、SD等模块关于凭证的修改和冲销操作实例
增值税发票红字冲销流程-红字发票冲销.doc
我国货币冲销措施有效性的实证分析——基于2002年9月~2007年8月的月度数据.docx
You can no longer reverse goods movements that were created from the transactions of the usage decision.
SAP报工冲销操作.pdf
SAP在对生产订单进行领料时,一般是依据生产...这样操作因为不会冲销预留,会发现预留中的领料数量并没有进行扣减。所以不能使用原来的预留进行补发,而如果再进行计划外发料的话就会造成生产订单超发,影响订单结算。
增值税发票红字冲销流程.pdf
增值税发票红字冲销流程.doc
增值税发票红字冲销流程汇编.docx
ERP-oracle-ebs-凭证冲销
我国中央银行外汇干预及冲销手段.ppt
中央银行外汇市场冲销干预的效力分析.doc