Try Something like this:DECLARE @Transactions TABLE( TransactionId INT, LogDate DATETIME, Status VARCHAR(8));INSERT INTO @Transactions(TransactionId, LogDate, Status) VALUES(1, '20110207', 'LogIn'), (1, '20110208', 'LogOut'), (1, '20110209', 'Complete'), (2, '20110207', 'LogIn');SELECT TransactionId, MAX(CASE WHEN Status = 'LogIn' THEN CONVERT(VARCHAR(10), LogDate, 101) END) AS LogInDate, MAX(CASE WHEN Status = 'LogOut' THEN CONVERT(VARCHAR(10), LogDate, 101) END) AS LogOutDate, MAX(CASE WHEN Status = 'Complete' THEN CONVERT(VARCHAR(10), LogDate, 101) END) AS CompleteDate FROM @Transactions AS T GROUP BY TransactionId