try a full join and 'isnull' to find the missing items
create table a(ei int, en varchar(255), logdate datetime, tin varchar(7), tout varchar(7))
insert into a values(0001, 'Sample', '20.09.2013', '6:00pm', NULL)
insert into a values(0001, 'Sample', '21.09.2013', NULL, '9:00am')
insert into a values(0002, 'Sample2', '20.09.2013', '7:00am', NULL)
insert into a values(0003, 'Sample3', '20.09.2013', '8:00am', NULL)
insert into a values(0003, 'Sample3', '21.09.2013', NULL, '5:00pm')
insert into a values(0004, 'Sample4', '21.09.2013', NULL, '4:00pm')
select
isnull(si.ei, so.ei), isnull(si.en, so.en), isnull(si.logdate, so.logdate), si.tin, so.tout
from
(select * from a si where tout is null) si
full join
(select * from a si where tin is null) so
on
si.ei = so.ei
and so.logdate = dateadd(dd, 1, si.logdate)
1Sample2013-09-20 00:00:00.0006:00pm9:00am
3Sample32013-09-20 00:00:00.0008:00am5:00pm
4Sample42013-09-21 00:00:00.000NULL4:00pm
2Sample22013-09-20 00:00:00.0007:00amNULL
pls note that 'sample3' spans a complete night!