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

data 4 kuartal terakhir

Bagian yang sulit adalah mendapatkan hari terakhir kuartal.

Solusi ini menghitung hari mulai rentang dengan mengurangkan 9 bulan dari tanggal target dan kemudian memotong dengan 'Q' topeng yang memberi kita hari pertama kuartal. Kami kemudian menghitung tanggal itu lagi , kurangi satu hari lalu tambahkan dua belas bulan dan itu memberikan hari terakhir kuartal saat ini:

with tgt as ( select date '2019-03-30' as dt from dual
              union all select date '2019-02-28' as dt from dual
              union all select date '2019-04-01' as dt from dual
)
select trunc(tgt.dt - interval '9' month, 'Q') as range_st,
       (trunc(tgt.dt - interval '9' month, 'Q') - 1) + interval '12' month as range_end
from tgt
/

Mungkin ada solusi yang lebih licin di luar sana, tetapi ini adalah akhir dari rehat kopi saya :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Melewati Prosedur Tersimpan dari SQL Server ke server tertaut ORACLE

  2. Menghubungkan ke Oracle menggunakan ADO

  3. Perbarui baris duplikat hanya dengan fungsi MAX di SQL

  4. Saat Ini Menjalankan Nama Prosedur dalam Paket

  5. Oracle:Ekspor hasil pernyataan pilih yang ditetapkan sebagai INSERT SQL Statements yang mirip dengan ekspor pengembang SQL