Oto inny sposób na zrobienie tego bez podzapytań. Ta metoda często przewyższa inne, dlatego warto przetestować obie metody, aby zobaczyć, która zapewnia najlepszą wydajność.
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
Daje to wiele wyników, jeśli masz dwie ceny z tą samą DOKŁADNĄ datą ceny (większość innych rozwiązań zrobi to samo). Poza tym nie ma nic do wyjaśnienia, że ostatnia data ceny przypada w przyszłości. Możesz rozważyć sprawdzenie tego niezależnie od metody, z której korzystasz.