This query is complicated because you have different columns for Date and Time (assume both are VARCHAR?). It would be better to CAST them together as a DATETIME column for this query. SELECT M.RecordNum, M.Date, M.Time, M.State FROM MyTable M INNER JOIN ( SELECT RecordNum, MAX(CAST(Date + ' ' + Time as DATETIME)) As MaxDateTime FROM MyTable GROUP BY RecordNum ) M2 ON M2.MaxDateTime = M.CAST(M.Date + ' ' + Time as DATETIME) AND M2.RecordNum = M.RecordNum ORDER BY RecordNum