Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Znajdź brakujące daty za pomocą SQL

Dzięki temu otrzymasz wszystkie brakujące dni na rok (SQL Fiddle ).

all_dates generuje listę wszystkich dat 2012 (dostosuj zgodnie z wymaganiami) oraz LEFT JOIN sprawdzanie, czy IS NULL eliminuje te daty, które istnieją w tabeli źródłowej.

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
;

Upewnij się, że używasz zmiennej bind zamiast trzykrotnie kodować datę na stałe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wyświetlić ukryte znaki pola w wyniku zapytania w Oracle?

  2. Tworzenie blob (Oracle) zwraca Metoda nie jest zaimplementowana przez sterownik JDBC (Jboss eap 5.1)

  3. Funkcja CHR() w Oracle

  4. Szukaj podobnych słów za pomocą indeksu

  5. Inżynieria wsteczna CREATE TABLE w Oracle