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

Bagaimana mempartisi selama berbulan-bulan dan mengelompokkan bulan dalam seperempat

Masalah dengan solusi yang Anda coba adalah Anda melewatkan satu langkah.

Jika kuartal Anda berbeda satu bulan dari kuartal "standar", maka - diberi tanggal, tanggal apa pun - Anda harus memajukan tanggal satu bulan, lalu terpotong menjadi seperempat dan kemudian mundur satu bulan. Anda melakukan langkah 2 dan 3 tetapi Anda melewatkan langkah 1.

with
  inputs ( dt ) as (
    select to_date('02-Jan-18', 'dd-Mon-yy') from dual union all
    select to_date('02-Feb-18', 'dd-Mon-yy') from dual union all
    select to_date('05-Mar-18', 'dd-Mon-yy') from dual union all
    select to_date('08-Apr-18', 'dd-Mon-yy') from dual union all
    select to_date('05-May-18', 'dd-Mon-yy') from dual union all
    select to_date('05-Jun-18', 'dd-Mon-yy') from dual union all
    select to_date('05-Jul-18', 'dd-Mon-yy') from dual union all
    select to_date('09-Aug-18', 'dd-Mon-yy') from dual union all
    select to_date('10-Sep-18', 'dd-Mon-yy') from dual union all
    select to_date('11-Oct-18', 'dd-Mon-yy') from dual union all
    select to_date('11-Nov-18', 'dd-Mon-yy') from dual union all
    select to_date('11-Dec-18', 'dd-Mon-yy') from dual
  )
select dt,
       add_months(trunc(add_months(dt, 1), 'q'), -1) as qtr
from   inputs;

DT          QTR     
---------   ---------
02-Jan-18   01-Dec-17
02-Feb-18   01-Dec-17
05-Mar-18   01-Mar-18
08-Apr-18   01-Mar-18
05-May-18   01-Mar-18
05-Jun-18   01-Jun-18
05-Jul-18   01-Jun-18
09-Aug-18   01-Jun-18
10-Sep-18   01-Sep-18
11-Oct-18   01-Sep-18
11-Nov-18   01-Sep-18
11-Dec-18   01-Dec-18


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle TO_DATE dengan hanya input waktu akan menambahkan komponen tanggal berdasarkan logika apa?

  2. Persyaratan Pemulihan Sebelum Pencadangan

  3. Pernyataan ACCEPT di Oracle PL SQL

  4. Instalasi Oracle 12c gagal mengakses lokasi sementara

  5. Cara menulis aplikasi .Net yang berfungsi dengan SqlServer dan Oracle (sekarang System.Data.OracleClient tidak digunakan lagi)