(预测)将来的余额计算

时间:2018-10-03 22:08:43

标签: sql sql-server

我的产品团队问我是否可以创建一个非常粗糙的预测数据表供他们使用。我在很多步骤上都有一个很好的主意,但是我一直在想如何计算明天,第二天等的库存数量。

在我的数据库中,我可以看到我们当前的数量。我称此为起始余额(今天)。然后,我将创建一个平均使用量字段,这将是我的估计每日销售额。然后,我将使用期初余额-估计的每日销售额=期末余额。我今天能做到这一点,我的问题是如何在接下来的120天内将该公式前滚

1 个答案:

答案 0 :(得分:1)

您可以使用递归CTE生成从0120的数字,然后计算日期并与之保持平衡。

DECLARE @estimated_daily_sales integer = 2;
DECLARE @starting_balance integer = 12345;

WITH
cte AS
(
SELECT 0 i 
UNION ALL
SELECT i + 1 i
       FROM cte
       WHERE i + 1 <= 120
)
SELECT dateadd(day, i, convert(date, getdate())) day,
       @starting_balance - i * @estimated_daily_sales balance
       FROM cte
OPTION (MAXRECURSION 120);

db<>fiddle