Maybe this be correct:SELECT EmpID, MAX(CASE WHEN rnk = 1 THEN CONVERT(VARCHAR(8), Intime, 108) END) AS [1inTime], MAX(CASE WHEN rnk = 1 THEN CONVERT(VARCHAR(8), OutTime, 108) END) AS [1outTime], MAX(CASE WHEN rnk = 2 THEN CONVERT(VARCHAR(8), Intime, 108) END) AS [2inTime], MAX(CASE WHEN rnk = 2 THEN CONVERT(VARCHAR(8), OutTime, 108) END) AS [2outTime] FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY EmpID ORDER BY Date ASC) AS rnk FROM TableName ) AS D GROUP BY EmpID ORDER BY EmpID;
______________________