• Hi Just check this one:

    create table dbo.Emp

    (EmpID varchar(5), Empname varchar(20), Logdate date, Timein time, Timeout time)

    insert into dbo.Emp select '1001', 'Steve', '20130928', '11:30 am', '02:30 pm'

    insert into dbo.Emp select '1001', 'Steve', '20130928', '03:30 pm', '05:30 pm'

    insert into dbo.Emp select '1001', 'Steve', '20130928', '05:45 pm', '08:00 pm'

    insert into dbo.Emp select '1002', 'Anthony', '20130928', '08:00 pm', NULL

    insert into dbo.Emp select '1002', 'Anthony', '20130929', NULL, '06:00 am'

    select A.EmpID, A.Logdate,

    MIN(A.Timein) AS Timein,

    CASE WHEN MAX(A.Timeout) IS NULL

    THEN (SELECT MIN(B.Timeout) FROM dbo.Emp B

    WHERE B.EmpID = A.EmpID)

    ELSE MAX(A.Timeout) END AS Timeout

    from dbo.Emp A

    group by A.EmpID, A.Logdate

    having MIN(A.Timein) IS NOT NULL