たとえば、クエリからのこの結果を単純化しました(select ... from ... where ...):
id months amount
1 2 120
1 6 180
2 2 120
2 6 180
ここで、上記の最初のテーブルから別のテーブルを取得する必要があり、次のようになります。
id months month_name amount
2 120
1 2 2013-04 60
1 2 2013-05 60
6 180
1 6 2013-04 30
1 6 2013-05 30
1 6 2013-06 30
1 6 2013-07 30
1 6 2013-08 30
1 6 2013-09 30
2 120
2 2 2013-04 60
2 2 2013-05 60
6 180
2 6 2013-04 30
2 6 2013-05 30
2 6 2013-06 30
2 6 2013-07 30
2 6 2013-08 30
2 6 2013-09 30
この結果をクエリで取得する方法がわかりませんか? プロシージャを使用する必要がありますか? もしそうなら - 例はありますか?
編集: 今必要なようです: 指定された日付が sysdate の 1 か月以上前 (たとえば 2 か月) の場合、最初の金額を 2 倍にし、すべての分割を 1 か月少なくする必要があります。説明するのは難しい。たとえば ....add_months(to_date('2013-03','yyyy-mm'), Nl-1) as month_name... sysdate を 2013-04 とすると、結果は次のようになります。
id months month_name amount
2 120
1 2 2013-03 120
6 180
1 6 2013-03 60
1 6 2013-04 30
1 6 2013-05 30
1 6 2013-06 30
1 6 2013-07 30
2 120
2 2 2013-03 60
6 180
2 6 2013-03 60
2 6 2013-04 30
2 6 2013-05 30
2 6 2013-06 30
2 6 2013-07 30