sql >> Database teknologi >  >> RDS >> Oracle

data for sidste 4 kvartal

Den vanskelige del er at få den sidste dag i kvartalet.

Denne løsning beregner startdagen for området ved at trække 9 måneder fra måldatoen og derefter afkorte med 'Q' maske som giver os den første dag i kvartalet. Vi beregner derefter denne dato igen , træk en dag fra og tilføj derefter tolv måneder, og det giver den sidste dag i det aktuelle kvartal:

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
/

Der kan være en mere slank løsning derude, men dette er slutningen på min kaffepause :)



  1. MySQL - Hvordan øger man varchar-størrelsen af ​​en eksisterende kolonne i en database uden at bryde eksisterende data?

  2. Oracle opret tabel ved hjælp af med klausul

  3. Automatiseret test af opgraderingsprocessen til MySQL/MariaDB/Percona Server

  4. Kan ikke starte server:Bind på TCP/IP-port:Kan ikke tildele den anmodede adresse