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:
我有一个像这样的 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: