This code does the same thing as above, but fasterSELECT dbo.Emp.LastName, dbo.Emp.FirstName, MAX(dbo.Events.EvenTime) AS EvenTime, MIN(dbo.UdfEmp.Ext) AS Ext, MIN(dbo.Reader.ReaderDesc) AS ReaderDesc, MIN(dbo.Events.DevID) AS DevID, CASE WHEN MIN(dbo.EVENTS.DEVID) IN ('23', '24', '25', '26') THEN 'OUT' ELSE 'IN' END AS StatusFROM dbo.ReaderINNER JOIN dbo.Events ON dbo.Events.DevID = dbo.Reader.ReaderIDINNER JOIN dbo.Emp ON dbo.Emp.ID = dbo.Evens.EmpIDINNER JOIN dbo.UdfEmp ON dbo.UdfEmp.ID = dbo.Emp.IDWHERE dbo.Events.EvenTime >= DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0) AND dbo.Events.EvenTime < DATEADD(day, DATEDIFF(day, 0, GETDATE()), 1) AND dbo.Events.EmpID <> 0GROUP BY dbo.Emp.LastName, dbo.Emp.FirstNameORDER BY dbo.Events.EvenTimePlease define "last" !Does EvenTime have time information embedded? Last days records only?Please post some sample data, and your expected output based on your provided sample data.Peter LarssonHelsingborg, Sweden