Oracle
 sql >> база данни >  >> RDS >> Oracle

Намерете липсващи дати с помощта на SQL

Това ще ви осигури всички липсващи дни за една година (SQL Fiddle ).

all_dates генерира списък с всички дати от 2012 г. (коригирайте според изискванията) и LEFT JOIN проверка за IS NULL елиминира онези дати, които съществуват във вашата изходна таблица.

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
;

Уверете се, че използвате променлива за свързване вместо твърдо кодиране на датата три пъти.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Невалиден SQL идентификатор

  2. Oracle за извличане на максимален запис

  3. Проблем с връзката с Hikaricp Oracle

  4. Използване на функция в клауза where с параметър clob

  5. Как да използвам CREATE OR REPLACE?