Если вы используете SQL Server 2005/2008, то решение CTE, уже перечисленное Mitch Weat, является лучшим с точки зрения производительности. Однако, если вы используете SQL Server 2000, вы не можете предполагать, что нет повторяющихся имен | TimeStamp комбинации. Используйте следующий код, чтобы вернуть только одну запись для имени:
SELECT ID
, Name
, TimeStamp
, Data
FROM DataTable dt
INNER JOIN
(SELECT Name
, MIN(DataTable.ID) AS MinimumID
FROM DataTable
INNER JOIN
(SELECT Name
, MAX(Timestamp) AS Timestamp
FROM DataTable
GROUP BY Name) latest
ON DataTable.Name = Latest.Name
AND DataTable.Timestamp = Latest.Timestamp
GROUP BY Name) MinimumLatest
ON dt.ID = MinimumLatest.ID
Так что, если вы добавите еще одну запись, например, 9 C 30, тогда будет возвращен только ID 6. Если вы не зайдете так далеко, вы можете в итоге вернуть 9 C 30 и 6 C 30.