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