qlikview中下面的行总和

Sum of rows below in qlikview

我有一个像这样的 table :

Date Amount
06/Jan/2021 300
05/Jan/2021 200
04/Jan/2021 -100
03/Jan/2021 -500
02/Jan/2021 200
01/Jan/2021 100

我想获得一个总计 运行 的列,但将最小数量保持为 0。一旦低于 0,总计将重置为 0。

预期结果如下

Date Amount Total
06/Jan/2021 300 500
05/Jan/2021 200 200
04/Jan/2021 -100 0
03/Jan/2021 -500 0
02/Jan/2021 200 200
01/Jan/2021 100 100

首先我们需要对数据进行排序。

其次,我们需要 select 以前的总数并添加当前金额 + 添加条件。

第三,我们需要按照我们喜欢的方式对 table 进行排序(最新的在最上面)。

最重要的函数是Peek

// example data (I simplified data)
[data]:
LOAD 
    * 
INLINE [
    Date, Amount
    6, 300
    5, 200
    4, -100
    3, -500
    2, 200
    1, 100
];

// order as we need use data from previous row correctly
[data_ordered]:
NoConcatenate LOAD 
    *
Resident
    [data]
Order by 
    Date asc;
    
DROP Table [data];

// condition, peek function and alt needed for first row where is no data yet
[data_totals]:
LOAD
    Date,
    Amount,
    If((Amount + Alt(Peek('Total', -1), 0)) > 0,
        Amount + Alt(Peek('Total', -1), 0),
        0) as Total
Resident
    [data_ordered];
    
DROP Table [data_ordered];

决赛table: