![]() |
1
2
我想我应该用pl/sql来实现这一点:
这个输出
好像你的最后一行错了,补充道
|
![]() |
2
1
如果只有一个平衡列,那么在sql中就很容易做到这一点。我们可以使用分析和()来生成amt的滚动总计,并将其应用于每行的bal1…
然而,您的需求在两列之间转换,并在行之间传递一些算法,这要复杂得多。也许可以用model()子句来实现,但是想到这个总是让我的额头流血。 |
![]() |
3
1
除了使用光标的简单(=无聊)解决方案外,您还可以通过创建聚合函数(或者更确切地说,创建两个聚合函数,一个用于计算余额1,另一个用于计算余额2)来完成此操作。问题是,您只能对聚合函数使用一个参数,因此该参数必须是复合类型。在伪代码中(我已经很久没有使用Oracle了):
然后可以使用分析函数查询它们。如果您只对每个账户的最终价值感兴趣,您可以:
如果你想要每一个单曲转换,请:
您还可以使用游标而不是聚合来完成此操作(很可能 可怕的 性能):
如果要所有行:
如果只需要最终值:
|