where (case
                             when fa_cardhistory.laststate_flag = 1 then
                              1 = 1 
                             when fa_cardhistory.laststate_flag = 0 then
                              (fa_cardhistory.accyear =
                              to_char(add_months(to_date(as_year || as_month,
                                                          'yyyy-mm'),
                                                  1),
                                       'yyyy')
                              
                              and
                              fa_cardhistory.period =
                              to_char(add_months(to_date(as_year || as_month,
                                                          'yyyy-mm'),
                                                  1),
                                       'mm')
                              
                              and fa_cardhistory.newasset_flag > 1
                              
                              and
                              fa_card.recorddate <=
                              (to_char(last_day(to_date(as_year || as_month,
                                                         'yyyy-mm')),
                                        'yyyy-mm-dd')))
                           end)
                       and...