【问题】
表 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 脚本
本文探讨了一种复杂SQL查询的替代方案,通过使用SPL脚本来简化层次计算。示例展示了如何在数据量不大的情况下,利用SPL进行高效的数据处理,从而得到预期的结果。这种方法对于处理涉及多层累计计算的问题提供了便利。
686

被折叠的 条评论
为什么被折叠?



