Assuming you mean to get the latest pricing information for each asset based
on the latest primary key in Pricing, then it will look like this:
-- SQL Server 2000
SELECT A.asset_name,
P.phdate,
P.price
FROM Asset AS A
LEFT OUTER JOIN
(SELECT assetid, phdate, price
FROM Pricing AS P1
WHERE prid = (SELECT MAX(prid)
FROM Pricing AS P2
WHERE P2.assetid = P1.assetid)) AS P
ON A.assetid = P.assetid
-- SQL Server 2005
SELECT A.asset_name,
P.phdate,
P.price
FROM Asset AS A
LEFT OUTER JOIN
(SELECT assetid, phdate, price,
ROW_NUMBER() OVER(
PARTITION BY assetid
ORDER BY prid DESC) AS seq
FROM Pricing) AS P
ON A.assetid = P.assetid
AND P.seq = 1;
-- SQL Server 2005
SELECT A.asset_name,
P.phdate,
P.price
FROM Asset AS A
OUTER APPLY
(SELECT TOP(1) assetid, phdate, price
FROM Pricing AS P1
WHERE A.assetid = P1.assetid
ORDER BY prid DESC) AS P;
HTH,
Plamen Ratchev
http://www.SQLStudio.com >> Stay informed about: Parent/Child Query: return single row from child table