Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Pobierz dane na podstawie miesiąca kwartału w sql

Potrzebujesz takiego zapytania. Upewnij się, że zawierasz NULL sprawdza dane 1 , dane 2, gdy brakuje rekordów dla przyszłych lub przeszłych dat i w razie potrzeby domyślnie wynosi zero.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zastąpić określone wartości w kolumnie bazy danych Oracle?

  2. Jak w języku SQL mogę zgłosić błąd podczas aktualizowania wartości „not null” w tabeli bazy danych?

  3. Importuj BLOB (obraz) z Oracle do ula

  4. LISTAGG Query ORA-00937:nie jest to funkcja pojedynczej grupy

  5. Wstawić do tabeli przy użyciu zestawu wyników podwójnego zapytania?