SELECT ID,Salary,[Date]
FROM
(
SELECT ROW_NUMBER() OVER (PARTITION BY ID ORDER BY [Date] DESC) AS Seq,*
FROM table
WHERE [date] <='20130101'
)t
WHERE Seq=1
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/