sql >> Database >  >> RDS >> Oracle

gegevens van het laatste 4 kwartaal

Het lastige is om de laatste dag van het kwartaal te halen.

Deze oplossing berekent de startdag van het bereik door 9 maanden af ​​te trekken van de streefdatum en vervolgens af te kappen met de 'Q' masker dat ons de eerste dag van het kwartaal geeft. Die datum berekenen we dan opnieuw , trek één dag af en tel er twaalf maanden bij op en dat geeft de laatste dag van het huidige kwartaal:

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
/

Er is misschien een geliktere oplossing, maar dit is het einde van mijn koffiepauze :)



  1. Is er een manier om DSRA9010E te omzeilen 'setReadOnly' wordt niet ondersteund op de WebSphere-uitzondering?

  2. Apex 5.0:een voortgangsbalk weergeven terwijl de databaseactie wordt uitgevoerd

  3. Serie-ID ophalen uit batch-ingevoegde rijen in postgresql

  4. Is er een enkele query waarmee een volgnummer in meerdere groepen kan worden bijgewerkt?