sql >> Databáze >  >> RDS >> Oracle

Načíst data na základě měsíce čtvrtletí v sql

Potřebujete takový dotaz. Ujistěte se, že jste zahrnuli NULL zkontroluje Data1, Data2, když chybí záznamy pro budoucí nebo minulá data, a v případě potřeby ji nastaví na nulu.

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. Indexační sloupec s funkcí REPLACE v mySQL

  2. Laravel 4.2:Časový limit MYSQL. Kde globálně změnit čas

  3. Kdy funkce MySQL ORDER BY RAND() objednává?

  4. Aktualizace dat v databázi MySQL po vložení nesprávného kódování