DECLARE
I:DATE
BEGIN
I:='2001-1'
        LOOP
           INSERT INTO TABLE_A(A,B,C)
   SELECT TRUNC(MAX(DATE_1)),B,C
   FROM TABLE_B
   WHERE DATE_1 IS NOT NULL
        AND DATE_2>=I
AND DATE_2<LAST_DAY(I)
           I:=ADD_MONTHS(I,1)
EXIT WHEN I<='2011-11'
       END LOOPEND BEGIN