qlikview - qlikview 中以下行的总和
问题描述
我有一张这样的桌子:
日期 | 数量 |
---|---|
2021 年 1 月 6 日 | 300 |
2021 年 1 月 5 日 | 200 |
2021 年 1 月 4 日 | -100 |
2021 年 1 月 3 日 | -500 |
2021 年 1 月 2 日 | 200 |
2021 年 1 月 1 日 | 100 |
我想得到一个包含运行总数的列,但将最小值保持为 0。一旦低于 0,总数就会重置为 0。
预期结果如下
日期 | 数量 | 全部的 |
---|---|---|
2021 年 1 月 6 日 | 300 | 500 |
2021 年 1 月 5 日 | 200 | 200 |
2021 年 1 月 4 日 | -100 | 0 |
2021 年 1 月 3 日 | -500 | 0 |
2021 年 1 月 2 日 | 200 | 200 |
2021 年 1 月 1 日 | 100 | 100 |
解决方案
首先,我们需要对数据进行排序。
其次,我们需要选择以前的总额并添加当前金额+添加条件。
第三,我们需要按照我们喜欢的方式对我们的餐桌进行排序(最新的在顶部)。
使用的最重要的功能是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];
决赛桌:
推荐阅读
- python - 无法从“keras.callbacks”导入名称“CallbackList”
- java - 在图库中显示保存的图像
- python - Tensorflow-为什么我的 ANN 模型不学习
- php - 不允许使用 php slim 405 方法
- django - 从 Django 中的 requests.post 获取 XML 数据
- r - 如何将代码放入 R markdown 环境中?
- python - 用于根据python中的指定日期在azure容器中定位数据的函数
- html - 模板工具包中的 Perl 多维散列
- python - 发送几个数据包后脚本无法正常运行
- javascript - 查看特定元素对应的第 n 个子元素?