关于数据统计问题
现要写一个数据统计的小工具,通过销售数据统计出月均销售情况
源销售表包括:货号,品名,规格,单位,数量,销售总额,客户编号,开单日期
商品目录表:货号,品名,规格,单位
客户表:客户编号,客户名称,别名
库存明细表:货号,数量,供应商,最后进价,
现在我要得到一个如下的表:
货号,品名,规格,单位,库存量,月均销售量,最后供应商,最后进价,持续值
其中:单品月均销售量=单品销售总数量/单品发生销售的总月数
持续值=单品总库存/单品月均销售量
我建了一个存储过程(需要按时间段查询):
pro_statistical @beginDate datetime,@endDate datetime
月均销售量=(case when (SELECT datediff(month,min(开单日期),@endDate) FROM tabSell AS T1 WHERE T1.品名=S.品名 AND T1.规格=S.规格 AND T1.单位=S.单位)> 0 then (SELECT SUM(数量) FROM tabSell AS T4 WHERE T4.品名=S.品名 AND T4.规格=S.规格 AND T4.单位=S.单位 and 开单日期 between @beginDate and @endDate)/
(SELECT datediff(month,min(开单日期),@endDate) FROM tabSell AS T1 WHERE T1.品名=S.品名 AND T1.规格=S.规格 AND T1.单位=S.单位) else 0 end)
因为涉及到一品多码,所以不可以只按货号来统计
要得到最后的表,我把操作步骤分为了两步:
1,统计出单品月均销售量,总库存,生成临时表“#”
2,通过临时表的月均销售量,得到持续值
持续值=(case when 月均销售量=0 then -1 else (isnull(sum(津村库存),0)+isnull(sum(非津村库存),0))/月均销售量 end),
整个存储过程执行下来花费我30多秒的时间,我不知是哪里设计得不合理,虽然数据是正确的。
另外说明的是,这个销售数据从2006年9月1号开始到现在,总共有23000多条记录。目前每天都有近千条记录添加进来
请问我的这个存储过程该怎么写才合理?谢谢~
------解决方案--------------------分少题麻烦