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

Nối SQL với truy vấn con tương quan trong đó các bảng có liên quan với nhau bằng các phạm vi chồng chéo

Bạn có thể thực hiện việc này bằng cách sử dụng CTErow_number() .

Bản trình diễn SQL Fiddle

;with cte as 
(
    SELECT *,
        ROW_NUMBER() OVER (PARTITION BY i.id ORDER BY e.EventDate DESC) as rNum
    FROM Item i
    JOIN Event e
        ON i.id between e.ItemStart and e.ItemEnd
)

SELECT ID,
  Name, 
  EventType,
  EventDate FROM cte
WHERE rNum = 1

Về cơ bản, CTE đã tham gia mục và sự kiện và thêm một cột mới cho thợ cắt dây và được phân vùng trên item.ID. Đây là ảnh chụp màn hình của nó trông như thế nào. Từ đây, tôi chỉ chọn rNum =1, đây sẽ là ngày sự kiện tối đa cho mỗi item.id.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bỏ tất cả các bảng có tên bắt đầu bằng một chuỗi nhất định

  2. Truy cập trực tiếp Cơ sở dữ liệu máy chủ Sql trong Xamarin.Forms

  3. Định dạng SQL trong SQL Server Management Studio

  4. Làm cách nào để nhận giá trị trả về từ thông báo hệ thống Sql Server?

  5. Cách tốt nhất để chèn hàng loạt cơ sở dữ liệu từ c # là gì?