Вы хотите различный набор месяцев в этой таблице плюс все последующие месяцы, верно?
select to_char(logical_date, 'MM') MONTH
from (
SELECT logical_date
FROM logical_date WHERE logical_date_type='B'
UNION
SELECT ADD_MONTHS(logical_date,1)
FROM logical_date WHERE logical_date_type='B'
)
/
В качестве альтернативы мы можем использовать TRUNC(logical_date, 'MM')
для получения первого дня месяца, если нам нужно сохранить тип данных DATE.