Rollierende Vorjahresperioden

select max(last_day(add_months(trunc(sysdate),-2))+1) as first_day_last_month,
  max(last_day(add_months(trunc(sysdate),-1))) as End_of_range,
  min(last_day(add_months(trunc(sysdate),-13))+1) as Begin_of_range
from

dual

 

liefert beispielsweise für einen Tag im März 2012

 

FIRST_DAY_LAST_MONTH END_OF_RANGE BEGIN_OF_RANGE
01.02.2012 29.02.2012 01.03.2011