sql >> Databáze >  >> RDS >> Oracle

údaje za poslední 4 čtvrtletí

Složitější je získat poslední den čtvrtletí.

Toto řešení vypočítá počáteční den rozsahu odečtením 9 měsíců od cílového data a následným zkrácením pomocí 'Q' maska, která nám dává první den čtvrtletí. Toto datum pak vypočítáme znovu , odečtěte jeden den a poté přidejte dvanáct měsíců a získáte poslední den aktuálního čtvrtletí:

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
/

Možná existuje úhlednější řešení, ale toto je konec mé přestávky na kávu :)



  1. Nejjednodušší způsob migrace projektu Django z MySQL do PostgreSQL

  2. Na místě, kde bylo očekáváno číslo, byl nalezen nečíselný znak

  3. Záloha SQL Server 2017 -3

  4. Prosím o pomoc s SQLPLUS? Jak spustit SQLPLUS s počátečním nastavením DEFINE `OFF`?