商品 进货时间 进货数量
A 2010-09-07 230
A 2010-11-12 100
B 2010-09-7 150
B 2010-10-7 80
B 2010-11-12 60
B 2010-12-2 100
B 2011-01-23 30我想得出下面的结果. --- 预测每种商品,每个月的计划进货数量
(逻辑是:前三个月的实际数量的平均值,如果只有二个月数量,则除以2)
商品 月份 实际数量 预测值
A 2010-09 230 0
A 2010-10 0 230/1
A 2010-11 100 230/1
B 2010-09 150 0
B 2010-10 80 150/1
B 2010-11 60 (150+80)/2
B 2010-12 100 (150+80+60)/3
B 2011-01 30 (80+60+100)/3
A 2010-09-07 230
A 2010-11-12 100
B 2010-09-7 150
B 2010-10-7 80
B 2010-11-12 60
B 2010-12-2 100
B 2011-01-23 30我想得出下面的结果. --- 预测每种商品,每个月的计划进货数量
(逻辑是:前三个月的实际数量的平均值,如果只有二个月数量,则除以2)
商品 月份 实际数量 预测值
A 2010-09 230 0
A 2010-10 0 230/1
A 2010-11 100 230/1
B 2010-09 150 0
B 2010-10 80 150/1
B 2010-11 60 (150+80)/2
B 2010-12 100 (150+80+60)/3
B 2011-01 30 (80+60+100)/3
insert into #
select 'A','2010-09-07', 230 union all
select 'A','2010-11-12', 100 union all
select 'B','2010-09-7', 150 union all
select 'B','2010-10-7', 80 union all
select 'B','2010-11-12', 60 union all
select 'B','2010-12-2', 100 union all
select 'B','2011-01-23', 30
select 商品, 月份 ,进货数量,预测值/case when 月次数=0 then 1 else 月次数 end from (select 商品,Left(进货时间,7) 月份, 进货数量,isnull((
select sum(进货数量) from (
select top 3 进货数量 from # b where b.商品=a.商品 and Left(进货时间,7)<Left(a.进货时间,7) order by 进货时间 desc) as t ),0) '预测值'
,(select count(*) from (
select top 3 进货数量 from # b where b.商品=a.商品 and Left(进货时间,7)<Left(a.进货时间,7) order by 进货时间 desc) as t )'月次数'
From # a) as t
A 2010-11 100 230
B 2010-09 150 0
B 2010-10 80 150
B 2010-11 60 115
B 2010-12 100 96
B 2011-01 30 80