sql >> Database >  >> RDS >> Oracle

Vind ontbrekende datums met SQL

Hiermee krijgt u een jaar lang alle ontbrekende dagen (SQL Fiddle ).

all_dates genereert een lijst van alle datums van 2012 (aanpassen indien nodig), en de LEFT JOIN controleren op IS NULL elimineert de datums die in uw brontabel staan.

WITH all_dates AS (
  SELECT TO_DATE('01-jan-2012') + ROWNUM - 1 AS d
  FROM dual
  CONNECT BY ROWNUM <= ADD_MONTHS(TO_DATE('01-jan-2012'), 12 ) - TO_DATE('01-jan-2012')
)
SELECT all_dates.d
FROM all_dates
LEFT JOIN t ON ( t.d = all_dates.d )
WHERE t.d IS NULL
ORDER BY all_dates.d
;

Zorg ervoor dat u een bindvariabele gebruikt in plaats van de datum drie keer hard te coderen.



  1. Hoe SQLite Upper() werkt

  2. Hoe kan ik update van de resultaten van een weergave in Oracle toestaan?

  3. Hoe lid te worden van drie tabellen in Codeigniter

  4. Fout bij het verbinden van MySQL met sqlalchemy (Flask)