2
我有一个需求来计算pl/sql中多个账户的滚动复利。我正在寻找关于如何脚本计算这些计算的帮助/建议。我需要的计算结果在下面输出的最后两列(利息总额和运行总额)中。我在这里发现了类似的例子,但没有特别适合pl/sql中的这些需求。我也是CTE /递归技术的新手,我发现的模型技术需要一个特定的迭代,在这种情况下可能是可变的。请参阅我下面的问题:累计计算利息计算(Oracle数据库11g第2版)
计算:
- INTERESTAMOUNT =(上年度运行总计+本年金额)* INTEREST_RATE
- RUNNINGTOTAL =(上年度运行总计+本年金额)*(1 + INTEREST_RATE ) - CURRENT YEAR开支
输入表:
YEAR ACCT_ID AMOUNT INTEREST_RATE EXPENSES
2002 1 1000 0.05315 70
2003 1 1500 0.04213 80
2004 1 800 0.03215 75
2005 1 950 0.02563 78
2000 2 750 0.07532 79
2001 2 600 0.06251 75
2002 2 300 0.05315 70
所需输出:
YEAR ACCT_ID AMOUNT INTEREST_RATE EXPENSES INTERESTAMOUNT RUNNINGTOTAL
2002 1 1000 0.05315 70 53.15 983.15
2003 1 1500 0.04213 80 104.62 2507.77
2004 1 800 0.03215 75 106.34 3339.11
2005 1 950 0.02563 78 109.93 4321.04
2000 2 750 0.07532 79 56.49 727.49
2001 2 600 0.06251 75 82.98 1335.47
2002 2 300 0.05315 70 86.93 1652.4
前一年的总成绩是多少?我在两次计算中都看到了它。 –
对不起,对于ACCT_ID 1,最初一年将是2002年,不包括上一年,运行总和将计算为: 1000 *(1 + 0.05315)-70 = 983.15 滚动化合物计算将开始于(983.15 + 1500)*(1 + 0.04213)-80 = 2507.77。 – Sisirclausac
你在你的问题中提到了pl/sql ...我认为你的意思是Oracle SQL? pl/sql是一种单独的编程语言,它可以用来解决你的问题,但一般的建议是只有当你的问题不能用普通的SQL解决时才使用pl/sql。你当前的问题**可以用普通的SQL解决,所以你不应该需要pl/sql,除非有其他的考虑你没有发布。请确认。 – mathguy