我有一个 SQL Server 2012 表,其中包含客户 ID、金额和重置列。我正在尝试计算运行总计,并在重置后计算运行总计。一旦设置了重置“标志”,那么我想在运行总计之后计算运行总计。
我有以下代码,不确定是否有办法在断点后计算运行总数。
WITH a
AS
(SELECT
*
,SUM(amount) OVER (ORDER BY id) AS RunningTotal
FROM Table1)
SELECT
*
,CASE
WHEN resetYN = 1 THEN 0
ELSE Amount + LAG(RunningTotal, 1) OVER (ORDER BY id)
END AS ResetRunningTotal
FROM a
这是重置后获取运行总计的一种方法。那里可能还有其他人。这是您的测试数据:
首先得到该
ResetYN
列的运行总计。我要打电话给它SUM_OF_RESETYN
。在外部查询中,您可以同时按CustomerID
和进行分区SUM_OF_RESETYN
。对于重置运行总计,Amount
您可以执行类似于您已有的案例语句,而不是直接获取:我运行了那个查询,结果与你的匹配,除了我没有 1 的 NULL 值
RESETRUNNINGTOTAL
。ID
这是故意的吗?如果是这样,将那部分逻辑集成到我的查询中应该很容易。