sql >> Databasteknik >  >> RDS >> Oracle

Hämta data baserat på månad av ett kvartal i sql

Du behöver en fråga som denna. Se till att du inkluderar NULL söker efter Data1 ,Data2 när poster saknas för framtida datum eller tidigare datum och standardinställningen är noll om det behövs.

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;

SQLFiddle




  1. MySQL - OCH skick

  2. infoga flera fält med hjälp av varje slinga

  3. VBA Base Class och härledda objekt-2

  4. generera enum-klass från tabell med JOOQ