当前位置: 代码迷 >> Sql Server >> 怎的快速统计出在库存时间超过N天的品种数
  详细解决方案

怎的快速统计出在库存时间超过N天的品种数

热度:105   发布时间:2016-04-24 08:47:16.0
怎样快速统计出在库存时间超过N天的品种数
--1000
select 商品,sum(结余数量) from 商品流水账 where 时间<='2015-5-1' group by 商品 having sum(结余数量)<>0

--1100
select 商品,sum(结余数量) from 商品流水账 where 时间<='2015-5-2' group by 商品 having sum(结余数量)<>0

--1050
select 商品,sum(结余数量) from 商品流水账 where 时间<='2015-5-3' group by 商品 having sum(结余数量)<>0

……

--900
select 商品,sum(结余数量) from 商品流水账 where 时间<='2015-5-31' group by 商品 having sum(结余数量)<>0


打个比方,5月份每天查询出的库存分别有1000、1100、1050、……900条记录,现在要统计这里面有哪些品种的在库时间是超过10天的,要怎样写语句?查询时间段是变量,感觉好复杂的样子。
------解决思路----------------------
写个存储过程,接受参数 
开始日期,结束日期

创建个临时表

循环 
     把每天的 group by 结果插入到临时表中

最后,从临时表中  group by 商品 having count(1)>10
------解决思路----------------------
进出库明细表<>库存每日明细表
你需要有永久存在的库存每日明细表,不能动态算,数据量大了会跑不动的。
------解决思路----------------------
数据库就是用空间换时间。
一定的数据统计转换、统一化是必要的,千万不要在空间上吝啬。
  相关解决方案