报告中的累计金额

时间:2014-10-06 19:28:24

标签: sql

Sample report

大家好,

我正在编写一份我正在进行计算的报告:

我们以第一行为例。在剩下的前一列中,我们有15,在列中我们有0.5,所以在剩下的列中,我们有14.5。

现在问题是在剩余字段中使用结果并将其传输到剩余前一列中的下一行。因此,我们应该拥有14.5而不是14。

有没有人在做类似的事情,并指导我如何处理这个问题?我真的想学习如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

ANSI标准lag()函数完全符合您的要求。 SQL表代表无序集,所以我需要假设你有一些列 - 我将称之为id - 标识行的排序。

lag()的语法是:

select t.*, lag(Remaining) over (order by 1) as prevRemaining
from table t;

如果您的数据库不支持ANSI标准窗口函数,则可以使用子查询获得相同的效果。但是,数据库的语法可能略有不同。