start_date 列 (EV200_EVT_START_DATE) と end_date 列 (EV200_EVT_END_DATE) を持つイベントのテーブルがあります。イベントは 1 か月以上にわたる場合があります。
また、毎年の毎日のテーブルもあります(これが役立つと思います)。
収益を月ごとに分割できるようにしたいので、基本的には、対応する月/年ごとに各イベントに参加する必要があると思います。次に、イベントが実行される合計日数を計算し、「参加した」月のイベント日数を割る必要があります。
Event Table (EV200_EVENT_MASTER)
===
EV200_EVT_START_DATE,EV200_EVT_END_DATE,EV200_EVT_ID
15/01/2012,17/01/2012,1
15/01/2012,15/02/2012,2
15/01/2012,15/03/2012,3
Calendar Table (EV001_MSTR_DATE_SCHED)
===
EV001_ISO_DATE
01/01/2012
02/01/2012
...
01/01/2021
02/01/2021
Output (something like)
===
EV200_EVT_START_DATE,EV200_EVT_END_DATE,EV200_EVT_ID,Year,Month,Days,Split
15/01/2012,17/01/2012,1,2012,1,2,1
15/01/2012,15/02/2012,2,2012,1,17,0.55
15/01/2012,15/02/2012,2,2012,2,14,0.45
15/01/2012,15/03/2012,3,2012,1,17,0.28
15/01/2012,15/03/2012,3,2012,2,29,0.48
15/01/2012,15/03/2012,3,2012,3,14,0.23