Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tìm ngày bị thiếu bằng SQL

Điều này sẽ giúp bạn có được tất cả các ngày bị thiếu trong một năm ( SQL Fiddle ).

all_dates tạo danh sách tất cả các ngày của năm 2012 (điều chỉnh theo yêu cầu) và LEFT JOIN kiểm tra IS NULL loại bỏ những ngày tồn tại trong bảng nguồn của bạn.

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
;

Đảm bảo sử dụng biến liên kết thay vì mã hóa cứng ngày ba lần.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn cập nhật Oracle sử dụng Tham gia

  2. ODP.NET Oracle.ManagedDataAccess khiến phiên mạng ORA-12537 kết thúc tệp

  3. Oracle JDBC UCP và Java

  4. Nhóm thay thế biến truy vấn Golang SQL

  5. PHP ORA-01745:tên biến máy chủ / liên kết không hợp lệ Cảnh báo