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

T-SQL Subquery Max (Date) và Joins

Đây là một cách khác để làm điều đó mà không cần truy vấn con. Phương pháp này thường sẽ hoạt động tốt hơn những phương pháp khác, vì vậy, bạn nên thử nghiệm cả hai phương pháp để xem phương pháp nào mang lại hiệu suất tốt nhất.

SELECT
     PRT.PartID,
     PRT.PartNumber,
     PRT.Description,
     PRC1.Price,
     PRC1.PriceDate
FROM
     MyParts PRT
LEFT OUTER JOIN MyPrices PRC1 ON
     PRC1.PartID = PRT.PartID
LEFT OUTER JOIN MyPrices PRC2 ON
     PRC2.PartID = PRC1.PartID AND
     PRC2.PriceDate > PRC1.PriceDate
WHERE
     PRC2.PartID IS NULL

Điều này sẽ cho nhiều kết quả nếu bạn có hai mức giá với Ngày giá CHÍNH XÁC giống nhau (Hầu hết các giải pháp khác sẽ thực hiện tương tự). Ngoài ra, tôi không có gì để tính đến ngày giá cuối cùng trong tương lai. Bạn có thể muốn xem xét một séc cho điều đó bất kể bạn sử dụng phương pháp nào.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiểu về Giám sát hiệu suất máy chủ SQL dựa trên đám mây

  2. Làm cách nào để thực hiện một số việc như:SỬ DỤNG @databaseName

  3. Cập nhật bản ghi trong bảng từ CTE

  4. Làm thế nào để chuyển đổi một chuỗi sang Hex và ngược lại?

  5. Thực hiện vòng lặp while trong SQL Server 2008