先进先出的数据冲销处理
来源:互联网 发布:ubuntu jdk路径 编辑:程序博客网 时间:2024/04/30 06:20
先进先出的数据冲销处理
--示例数据:
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数量
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 单号 s数量=isnull((select sum(数量) from 销售订单
where 货品编码=a.货品编码
and(datediff(day,日期,min(a.日期))>0
or datediff(day,日期,min(a.日期))=0 and 单号<=a.单号)),0)
from 销售订单 a
group by 单号,convert(char(10),日期,120),货品编码
)a
left join(
select 货品编码,数量=sum(数量)
from 销售发货单
group by 货品编码
)b on a.货品编码=b.货品编码
and a.p数量
select * from #
union all
select '','','合计',sum(订单数量),sum(发货数量),sum(待执行数量) from #
drop table #
原帖地址
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的数据冲销处理
- 先进先出的还款处理触发器
- 先进先出的订单分配处理
- 先进先出的订单分配处理
- 先进先出的订单分配处理
- 你是一个合格的J2EE程序员么
- 雨天晴(R) - 2008夏日火热巨献!
- Microsoft Visual C++ Toolkit 2003 发布
- 网友向教育部倡议启用中式学位服 助推汉服复兴
- CMS 前台统一导航设计
- 先进先出的数据冲销处理
- 你是一个合格的J2EE程序员么
- 写在Blog访问量超过15万次
- SQL Server 练习题3
- 固定资产和设备区别
- 网友向教育部倡议启用中式学位服 助推汉服复兴
- 使用os3grid做一个基于Web和Ajax的工资表录入界面
- SQL Server练习题2
- 使用repeater而不使用datalist的最终理由