Имате нужда от подобна заявка. Уверете се, че сте включили NULL
проверява за Data1, Data2, когато липсват записи за бъдещи дати или минали дати и по подразбиране се нулира, ако е необходимо.
select To_CHAR(Month,'MON-YY') Month,
CASE
WHEN MOD ( EXTRACT ( MONTH FROM Month ), 3 ) = 1
THEN Data2 + LEAD ( Data2 ,1) OVER ( ORDER BY Month ) + LEAD ( Data2 ,2) OVER ( ORDER BY Month )
WHEN MOD ( EXTRACT ( MONTH FROM Month ), 3 ) = 2
THEN LAG(Data1,1) OVER ( ORDER By Month ) + Data2 + LEAD ( Data2 ,1) OVER ( ORDER BY Month )
WHEN MOD ( EXTRACT ( MONTH FROM Month ), 3 ) = 0
THEN LAG(Data1,2) OVER ( ORDER By Month ) + LAG(Data1,1) OVER ( ORDER By Month )+Data2
END data
FROM
Table1;