sql >> Base de Datos >  >> RDS >> Oracle

Encuentra fechas faltantes usando SQL

Esto le dará todos los días faltantes durante un año (SQL Fiddle ).

all_dates genera una lista de todas las fechas de 2012 (ajustar según sea necesario), y el LEFT JOIN buscando IS NULL elimina esas fechas que existen en su fuente-tabla.

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
;

Asegúrese de usar una variable de vinculación en lugar de codificar la fecha tres veces.