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