|
4#
楼主 |
发表于 2005-6-8 22:35:00
|
只看该作者
--查询处理的过程
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
group by 单号,convert(char(10),日期,120),货品编码
)a
left join(
select 货品编码,数量=sum(数量)
from 销售发货单
group by 货品编码
)b on a.货品编码=b.货品编码
and a.p数量<b.数量
order by a.单号,a.日期,a.货品编码select * from #
union all
select '','','合计',sum(订单数量),sum(发货数量),sum(待执行数量) from #
drop table # |
|