【发布时间】:2016-02-01 17:26:40
【问题描述】:
我正在尝试根据前 3 个月的销售预测来计算销售预测,该预测可以是实际的也可以是预测的。
company_id Year Month Actuals Forecast
123456 2014 1 10
123456 2014 2 15
123456 2014 3 17
123456 2014 4 14.00
123456 2014 5 15.33
123456 2014 6 15.44
123456 2014 7 14.93
Month 4 = (10+15+17)/3
Month 5 = (15+17+14)/3
Month 6 = (17+14+15.33)/3
Month 7 = (14+15.33+15.44)/3
假设我想为每个公司计算未来 18 个月的预测。
我正在查看去年的数据。一些公司有例如2个月的数据和其他12个月的数据等等。
我已经搜索并找到了许多不同的解决方案,但它们都只考虑了实际情况。
我想我必须做一个递归 CTE,但我想不通。
请帮忙:)
【问题讨论】:
-
您所有月份的顺序是否与您的示例中完全相同?即,如果 n = 任何给定月份,一个月的计算是否只是 (n-1) + (n-2) + (n-3) / 3 的实际/预测值?
-
你的 DBMS 是什么?是否支持Windowed Aggregates、
MIN... OVER (ORDER BY ...)? -
@EatPeanutButter - 是的,也不是。月份是 01-01-2015 等日期。我刚刚展示了他们的 row_number(如果有意义的话)。
-
@dnoeth - 我正在使用 SSMS 2008 R2。是的,它支持 OVER(ORDER BY) 等
-
看起来你可以添加实际和预测来获得你的工作号码,因为它总是填充一个或另一个。
标签: sql sql-server-2008-r2 average common-table-expression recursive-query