Here is a guess:DECLARE @Table TABLE ( [File] INT, Task INT, Description VARCHAR(100), [Event Data] DATE, [Event Time] TIME, Status VARCHAR(25))INSERT @Table VALUES(643, 598, 'DV', '2013/06/19', '5:42:07', 'Submitted'),(643, 598, 'DV', '2013/06/19', '5:52:48', 'Rejected'),(643, 598, 'DV', '2013/06/27', '5:44:29', 'Submitted'),(643, 598, 'DV', '2013/06/27', '6:02:47', 'Rejected')SELECT *FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY Task, Status ORDER BY CAST([Event Data] AS DATETIME) + CAST([Event Time] AS DATETIME)) AS MinDate, ROW_NUMBER() OVER (PARTITION BY Task, Status ORDER BY CAST([Event Data] AS DATETIME) + CAST([Event Time] AS DATETIME) DESC) AS MaxDate FROM @Table ) AS TWHERE ( Status = 'Rejected' AND MaxDate = 1 ) OR ( Status = 'Submitted' AND MinDate = 1 )