Filtering previous month data with case statement
Try to change the where clause to the following:

where DT_CURRENT_DT &gt;= trunc (sysdate, 'MM') - interval '1' month
  and DT_CURRENT_DT &lt; trunc (sysdate, 'MM')
  and (
       trunc(sysdate, 'MM') != to_date('01-NOV-2018')
       or extract(day from DT_CURRENT_DT) &gt;= 15
      );