【发布时间】:2020-12-06 21:00:26
【问题描述】:
我想计算 Saldo 1 低于 Saldo 2 时的运行差异。
你可以在下面找到我的数据集
我希望得到以下结果
我用子查询和不同的方法尝试了很多东西来发现差异。我发现了许多具有一个值的运行总计示例,等等。但是我不能让我的条件语句起作用,如果我只是在没有条件语句的情况下执行干净的代码,我的值总是错误的。
这是我目前的代码。我正在使用分区,因为我想在 ID 更改时重置。
IF SALDO1 < SALDO2
BEGIN
SELECT ID, SALDO1, SALDO2,
SUM(SALDO2 - SALDO1) over (PARTITION BY ID ORDER BY ID) as RunningDifference
END
ELSE
BEGIN
'0'
END
FROM test2;
谢谢!
【问题讨论】:
-
您使用的是哪个 dbms?
-
我在 HeidiSQL 中这样做
-
SQL 表对它们没有保证顺序。甚至不是隐含的。如果您想保证行的处理顺序,您必须在 ORDER BY 中添加另一列。
-
谢谢!我可以看到这是我的主要问题