Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ambil data berdasarkan bulan seperempat di sql

Anda membutuhkan kueri seperti ini. Pastikan Anda menyertakan NULL memeriksa Data1, Data2 ketika catatan hilang untuk tanggal mendatang atau tanggal yang lalu dan default ke nol jika perlu.

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. Hapus heading di Oracle spool

  2. Pl/SQL Penanganan Pengecualian Prosedur Bersarang

  3. Mendapatkan indeks elemen dalam koleksi PL/SQL

  4. Cara mempercepat loading data dari oracle sql ke pandas df

  5. buat tabel berdasarkan tipe yang ditentukan pengguna