先进先出的数据冲销处理
时 间:2008-07-18 08:42:16
作 者:邹建 ID:43 城市:江阴
摘 要:先进先出的数据冲销处理
正 文:
先进先出的数据冲销处理
--示例数据:
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交流群 (群号:54525238)
Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access选项卡示例】Ac...(09.09)
- 【Access源码示例】按输入...(09.02)
- 【Access日期区间段查询】...(08.29)
- 【Access日期区间段查询】...(08.27)
- Access怎样才能实现日期时...(08.21)
- 【Access定时打开查询】A...(08.19)
- Access生成固定数量的记录...(08.13)
- Access怎样才能实现日期时...(08.12)
- Access利用导航窗体控件对...(08.03)
学习心得
最新文章
- Access表中的字段名、字段标题...(09.19)
- Access快速开发平台--更改“...(09.18)
- 【中秋及国庆优惠】Access培训...(09.15)
- Access如何将日期型的数值转换...(09.14)
- 英文输入法输入数据中存在单引号引起...(09.11)
- 【Access选项卡示例】Acce...(09.09)
- 让Access光标停留在指定的控件...(09.07)
- 关于Access查询条件里使用通配...(09.06)
- Access报表偷懒制作法--Ac...(09.05)
- Access快速开发平台--窗体数...(09.04)