【发布时间】:2011-07-28 18:23:23
【问题描述】:
我有一张两张桌子。我想从这两个表中得到以下结果。任何帮助表示赞赏。
事件表
event_id | gross_amount | transaction_id
1 | 10 | 1
2 | 12 | 5
事务表
trx_id | debit | credit | link_trx_id
1 | 4 | 0 | null
2 | 0 | 2 | 1
3 | 0 | 1 | 2
4 | 3 | 0 | 3
5 | 0 | 5 | null
6 | 0 | 3 | 5
预期结果:
trx_id | debit | credit | current_gross | current_net
1 | 4 | 0 | 10 | 6
2 | 0 | 2 | 6 | 8
3 | 0 | 1 | 8 | 9
4 | 3 | 0 | 9 | 6
5 | 0 | 5 | 10 | 15
6 | 0 | 3 | 15 | 18
说明
如您所见,事务 1,2,3,4 落入一组,而 4,6 落入另一组。对于每笔交易都需要将其链接到以前的交易 current_net 作为它的 current_gross。
获取 current_gross 基本上是一个递归调用。这里我不能使用 PL SQL 函数,我可以编写一个快速递归函数来计算 current_gross。我需要这个任务的纯 PL/SQL 查询。 (可以使用内置的PL SQL函数)
【问题讨论】: