如何通过MS SQL存储过程来优化查询库存变化明细表。生成统计报表

[复制链接]
查看11 | 回复1 | 2010-12-21 13:36:49 | 显示全部楼层 |阅读模式
有几千个商品需要查询指定时间段内的库存变动情况
2个表
一个是产品表[vp_Product]
一个是产品库存变化明细表[vp_Stock]
当客户进行出库入库操作的时候。我都会[vp_Stock]记录下
产品编号[ProID]
变化时间[TimeC]
出入库类型[leixin] 'leixin用来区分是生产入还是购进入,是生产出还是领用出
变化的数量[Shu]
变化好以后的当前库存[stock]
当客户搜索指定的时间区间时需要产生如下报表,这是报表科目
货物编号期初数本期购进生产入生产出本期领用期末数
例如客户搜索 :
TimeB=2010-11-1
TimeE=2010-11-30
我目前的做法:
先 select * From [vp_product]
然后for i=1 to rs.recordCount
再通过ProID进行查询
SELECT TOP 1 stock

FROM [vp_ProStock]

WHERE vp_ProStock.ProID = r_products.ID And TimeC=@TimeB And TimeC<=@TimeE
。。。。。
Next
这样每个产品都要查询5遍数据库,效率太低。希望通过存储过程来改善效率


回复

使用道具 举报

千问 | 2010-12-21 13:36:49 | 显示全部楼层
获得指定时间段内原始数据表 #tbl0select *,DATEDIFF ( hh, '2010-11-1' , TimeC) as beginhour,DATEDIFF ( hh,TimeC,'2010-11-30' ) as endhour From [vp_product] where TimeC between '2010-11-1' and '2010-11-30'全部产品编码#tbidselect distinct ProID from#tbl0 期初数#begin:select * from #tbl0(select ProID,min(beginhour) From #tbl0 gro
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行