在社区的大量帮助下,我已经能够创建一个查询,如果没有交易,该查询会自动为项目添加新行,并包含前一行的累积数字。不幸的是我遇到了我想改变的事情。如果期间之间的期间内没有交易,则这些期间将丢失。我也想填补这些。
示例:项目 12345 GL:
项目 | 数量 | 时期 |
---|---|---|
12345 | 10 | 202001 |
12345 | 10 | 202002 |
12345 | 10 | 202003 |
12345 | 10 | 202004 |
12345 | 10 | 202005 |
12345 | 10 | 202006 |
12345 | 10 | 202009年 |
我的代码如下:
DECLARE @d date = DATEFROMPARTS(YEAR(getdate()), MONTH(getdate()), 1);
;WITH src AS -- mostly your existing query
(
SELECT project,
period,
rn = ROW_NUMBER() OVER
(PARTITION BY project ORDER BY period DESC),
amount = SUM(SUM(amount)) OVER
(PARTITION BY project ORDER BY period
ROWS UNBOUNDED PRECEDING)
FROM dbo.GLProject
GROUP BY project, period
),
recur …
Run Code Online (Sandbox Code Playgroud) sql-server ×1