如何实现累积功能
例题描述和简单分析
有数据库表SAMPLE,数据如下所示:
DATE |
VALUE |
2000-01-01 |
1 |
2000-01-02 |
2 |
2000-01-03 |
3 |
2000-01-04 |
4 |
需要在新列CUM 中计算 VALUE 的累积值,结果如下所示:
DATE |
VALUE |
CUM |
2000-01-01 |
1 |
1 |
2000-01-02 |
2 |
3 |
2000-01-03 |
3 |
6 |
2000-01-04 |
4 |
10 |
解法及简要说明
在集算器中编写脚本p1.dfx,如下所示:
A |
|
1 |
=connect("demo") |
2 |
=A1.query@x("SELECT * FROM SAMPLE") |
3 |
=A2.derive(VALUE+CUM[-1]:CUM) |
简要说明:
A1 连数据源为 demo 的数据库
A2 返回查询结果所组成的序表,结束时自动关闭数据库连接
A3 添加计算列 CUM,计算 VALUE 的累积值
BIRT 集成这段代码的方法可参考:《BIRT 如何调用 SPL 脚本》。
https://www.eclipse.org/forums/index.php/t/1090404/
英文版