跨行计算库存
【问题】
表 test
ID store
1 33
2 55
3 66
4 88
5 12
查询后要得到这个结果
ID store store1 store2
1 33 33 33
2 55 88 121
3 66 154 275
4 88 242 517
5 12 254 771
【回答】
类似这种涉及到层次的计算使用SQL太复杂了,这种数据量不大的情况,将数据取出来用SPL来算更方便:
A |
|
1 |
$SELECT ID,store FROM TEST ORDER BY ID |
2 |
=A1.derive(store+store1[-1]:store1,store1+store2[-1]:store2) |
A1:sql取数,按ID排序
A2:增加store1,store2两列,使用[-1]来引用上一条记录,完成计算:
写好的脚本如何在应用程序中调用,可以参考Java 如何调用 SPL 脚本