• I am not sure what exactly you want? Do you want latest record for Id or latest record for each month? From your example it seems you want latest record for each Id. If it is the case then below is your solution.

    CREATE TABLE #T (Id INT, Val INT, PerformedDtm DATE)

    INSERT INTO #t (Id, Val, PerformedDtm)

    SELECT 111 Id ,10 Val ,CAST('02/15/2008' AS DATE) PerformedDtm

    UNION ALL SELECT 121 ,15 ,'02/15/2008'

    UNION ALL SELECT 121 ,20 ,'03/25/2008'

    UNION ALL SELECT 131 ,20 ,'12/09/2008'

    UNION ALL SELECT 141 ,16 ,'12/09/2008'

    UNION ALL SELECT 131 ,18 ,'12/25/2008'

    UNION ALL SELECT 111 ,17 ,'12/27/2008'

    UNION ALL SELECT 121 ,16 ,'12/29/2008'

    SELECT #T.* FROM #T

    INNER JOIN (SELECT Id, MAX(PerformedDtm) PerformedDtm FROM #T GROUP BY Id) AS T ON T.Id = #T.Id AND T.PerformedDtm = #T.PerformedDtm

    ORDER BY #T.Id

    DROP TABLE #T

    Regards,
    Nitin