2
私は、pl/sqlの複数のアカウントでローリング複合金利を計算する必要があります。私は助けを求めていた/どのようにこれらの計算を計算するスクリプトのアドバイス。私が必要とする計算は、以下の出力の最後の2つの列にあります(要約と実行合計)。私はここでこれと似た例を見つけましたが、pl/sqlでこれらの要件に特に適合するものは何も見つかりませんでした。私はCTE/Recursive Techniquesも新しく、このケースでは変わる可能性のある特定の反復が必要であることがわかったモデル技法です。累積Compoud Interest Calculation(Oracle Database 11g Release 2)
計算::
- INTERESTAMOUNT =(前年同期はTOTAL +現在の年金額をRUNNING)* INTEREST_RATE
- 積算合計=(前年同期はTOTAL +現在の年金額をRUNNING)*(1 + INTEREST_RATEの下に私の問題を参照してください。 ) - 現在の年費用
入力表:
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_ID1の場合、前年は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