Đâ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.