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
希望你平安! .我需要将会员销售收入推迟 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