Oracle
 sql >> Base de données >  >> RDS >> Oracle

Trouver les dates manquantes à l'aide de SQL

Cela vous permettra d'obtenir tous les jours manquants pendant un an (SQL Fiddle ).

all_dates génère une liste de toutes les dates de 2012 (ajuster au besoin), et le LEFT JOIN vérification de IS NULL élimine les dates qui existent dans votre table source.

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
;

Assurez-vous d'utiliser une variable de liaison au lieu de coder en dur la date trois fois.