![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
#3
| |||
| |||
|
|
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 Ratchevhttp://www.SQLStudio.com |
![]() |
| Thread Tools | |
| Display Modes | |
| |