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

Najděte chybějící data pomocí SQL

Tím získáte všechny chybějící dny na jeden rok (SQL Fiddle ).

all_dates vygeneruje seznam všech dat roku 2012 (upravte podle potřeby) a LEFT JOIN kontrola IS NULL eliminuje data, která existují ve vaší zdrojové tabulce.

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
;

Ujistěte se, že používáte proměnnou vazby místo toho, abyste třikrát natvrdo zakódovali datum.



  1. Oracle najít omezení

  2. Můžete zvýšit max_allowed_packet od klienta?

  3. PostgreSQL Reverzní LIKE

  4. Chyba chybného paketu během MySQL LOAD DATA LOCAL INFILE