次のデータを返すクエリがあります。
T_REF T_CUR_CODE T_TERM T_TERM_MAX T_REST1 T_RATE1 T_REST2 T_RATE2 T_REST3 T_RATE3
1 RUR 181 365 5000 10,8 50000,01 11,1 500000,01 11,2
1 RUR 366 730 5000 11,4 50000,01 11,55 500000,01 11,6
1 USD 181 365 100 5,9 1500,01 6,1 20000,01 6,55
1 EUR 181 365 100 5,7 1500,01 5,9 20000,01 6
1 USD 366 730 100 6,3 1500,01 6,4 20000,01 6,6
1 EUR 366 730 100 6,05 1500,01 6,2 20000,01 6,3
ご覧のとおり、このクエリは参照用のレートを記述しています。各レートは、金額 (t_rest) と期間 (t_term および t_term_max) に依存します。1 つの参照と各通貨のすべてのレートをグループ化する必要があります (3 行、6 つのレート):
T_REF T_CUR_CODE T_RATE_1 T_TERM_1 T_TERM_MAX_1 T_REST_1 T_RATE_2 T_TERM_2 T_TERM_MAX_2 T_REST_2 T_RATE_3 T_TERM_3 T_TERM_MAX_3 T_REST_3 T_RATE_4 T_TERM_4 T_TERM_MAX_4 T_REST_4 T_RATE_5 T_TERM_5 T_TERM_MAX_5 T_REST_5 T_RATE_6 T_TERM_6 T_TERM_MAX_6 T_REST_6
1 RUR 10,8 181 365 5000 11,1 181 365 50000,01 11,2 181 365 500000,01 11,4 366 730 5000 11,55 366 730 50000,01 11,6 366 730 500000,01
ストアド プロシージャで動的クエリ (dbms_sql パッケージ) として使用し、クエリを生成する前に、各行のレート (このサンプル値は 3) と各通貨の異なる用語 (ここでは値は 2) を計算します。