MSSQL 查询通过在接下来的 12 个月内划分来推迟收入

MSSQL Query to defer income by dividing over the next 12 months

希望你平安! .我需要将会员销售收入推迟 12 个月以上。我的 table 有 2 列:

1. SaleDate.
2. Revenue

我需要将收入分成 12 个月。例如,如果会员费用为 1200 美元并在 6 月 17 日出售,那么每个月将获得 100 美元并且日期需要如下所示

Date           Revenue
June           100
july           100
August         100
September      100

以此类推直到五月。

所以它基本上是 运行 我们所有收入的总和除以接下来的 12 个月。我们每个月都会做同样的事情。任何帮助将不胜感激。

也许 CROSS JOIN

例子

Declare @YourTable Table ([SaleDate] date,[Revenue] money)  
Insert Into @YourTable Values 
 ('2020-06-17',1200)
 
Select [Date]    =dateadd(month,n,[SaleDate])
      ,[Revenue] =A.Revenue/12
 from @YourTable A
 Cross Join ( values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11) ) B(n)

Returns

Date        Revenue
2020-06-17  100.00
2020-07-17  100.00
2020-08-17  100.00
2020-09-17  100.00
2020-10-17  100.00
2020-11-17  100.00
2020-12-17  100.00
2021-01-17  100.00
2021-02-17  100.00
2021-03-17  100.00
2021-04-17  100.00
2021-05-17  100.00