Hier ist eine andere Möglichkeit, dies ohne Unterabfragen zu tun. Diese Methode ist anderen häufig überlegen, daher lohnt es sich, beide Methoden zu testen, um zu sehen, welche die beste Leistung liefert.
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
Dies führt zu mehreren Ergebnissen, wenn Sie zwei Preise mit demselben GENAUEN Preisdatum haben (die meisten anderen Lösungen tun dasselbe). Außerdem gibt es keinen Anhaltspunkt dafür, dass das letzte Preisdatum in der Zukunft liegt. Sie sollten eine Überprüfung in Betracht ziehen, unabhängig davon, welche Methode Sie am Ende verwenden.