I am not sure that this meets your actual requirement but this may be a start for you..Try this(untested).
SELECT *
FROM empallocation A
WHERE NOT EXISTS (SELECT 1
FROM checkinout B
WHERE A.employeeid = B.employeeid
AND b.checkinout BETWEEN a.startdate AND b.enddate)
I am adding this code based on the link you provided..
SQL FIDDLE DEMO
CREATE TABLE empalloc
(
eid INT,
startdate DATETIME,
endate DATETIME
)
INSERT INTO empalloc
VALUES (001,'2014-10-01','2014-10-15'),
(002,'2014-10-10','2014-10-15')
CREATE TABLE checkinout
( eid INT,
checkin DATETIME )
INSERT INTO checkinout
VALUES (001,'2014-10-03'),(001,'2014-10-04'),(001,'2014-10-08'),
(001,'2014-10-09'),(001,'2014-10-10'),(001,'2014-10-11'),
(001,'2014-10-13'),(001,'2014-10-15'),(002,'2014-10-12'),
(002,'2014-10-13')
;WITH cte
AS (SELECT eid,
startdate,
endate
FROM empalloc
UNION ALL
SELECT eid,
Dateadd(dd, 1, startdate) startdate,
endate
FROM cte
WHERE startdate < endate) SELECT eid,
startdate
FROM cte
WHERE startdate >= '2014-10-01'
AND startdate < '2014-10-10'
EXCEPT
SELECT eid,
checkin
FROM checkinout
In where condition just add the date range in which u need to generate the report