先进先出的数据冲销处理-金宇
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> ADP及SQL SERVER


先进先出的数据冲销处理

发表时间:2008/7/18 8:42:16 评论(2) 浏览(8274)  评论 | 加入收藏 | 复制
   
摘 要:先进先出的数据冲销处理
正 文:

先进先出的数据冲销处理

--示例数据:
create table 销售订单(单号 varchar(10),日期 datetime,货品编码 varchar(10),数量 int)
insert 销售订单
select 'A1','2005-5-1','ABCD',100 union all
select 'A2','2005-5-3','ABCD',200 union all
select 'A3','2005-5-4','ABCD',300 union all
select 'A4','2005-5-8','ABCD',500

create table 销售发货单(单号 varchar(10),日期 datetime,货品编码 varchar(10),数量 int)
insert 销售发货单
select 'B1','2005-5-05','ABCD',250 union all
select 'B2','2005-5-07','ABCD',100 union all
select 'B3','2005-5-10','ABCD',150'
GO

问题描述:
    对于示例数据中的销售订单和销售发货单,由于客户在做销售发货时无法指定本次是要发那一张订单的东西。所以销售订单无法与销售发货单关联。客户要求以先进先出的方式统计销售订单的执行情况。对于示例数据,要求结果如下:
单号        日期             货品编码    订单数量    发货数量     待执行数量      
---------- ----------------- ------------- -------------- --------------- ------------------
A1         2005-05-01   ABCD       100            100              0
A2         2005-05-03   ABCD       200            200             0
A3         2005-05-04   ABCD       300            200            100
A4         2005-05-08   ABCD       500            0                 500
                                      合计          1100         500             600

--查询处理的过程
select
    a.单号,a.日期,a.货品编码,
    订单数量=a.数量,
    发货数量=isnull(case when a.s数量<b.数量 then a.数量 else b.数量-a.p数量 end,0),
    待执行数量=case when a.s数量<b.数量 then 0 else a.s数量-isnull(b.数量,a.p数量) end
into # from(
    select 单号,日期=convert(char(10),日期,120),货品编码,
        数量=sum(数量),
        p数量=isnull((select sum(数量) from 销售订单
    where 货品编码=a.货品编码
        and(datediff(day,日期,min(a.日期))>0
        or datediff(day,日期,min(a.日期))=0 and 单号<a.单号)),0),
        s数量=isnull((select sum(数量) from 销售订单
            where 货品编码=a.货品编码
                and(datediff(day,日期,min(a.日期))>0
                or datediff(day,日期,min(a.日期))=0 and 单号<=a.单号)),0)
    from 销售订单 a
    gro


Access软件网交流QQ群(群号:198465573)
 
 相关文章
Access之错误代码3008\Access运行时错误'3008'...  【杏林求真  2013/6/17】
【WPF小品】图片处理示例  【煮江品茶  2013/7/8】
关于临时表的回收处理  【Aaron  2013/7/10】
【VBA系统教程四】处理录制的宏  【nivenm  2013/7/15】
Access字符串处理函数整理  【宏鹏(转载)  2013/7/31】
常见问答
技术分类
相关资源
文章搜索
关于作者

金宇

文章分类

文章存档

友情链接