SELECT t.*
FROM Table t
INNER JOIN (SELECT
PersonId,
MAX([Year]) AS MaxYear
FROM
tbl
WHERE
Amount <> 0
GROUP BY
PersonId
)t1
ON t1.PersonId = t.PersonId
AND t1.MaxYear = t.Year
------------------------------------------------------------------------------------------------------ SQL Server MVP http://visakhm.blogspot.com/