Using the function LAG
it's possible to check for gaps and overlaps in your data without using a calendar table
WITH Gaps AS (
SELECT Start_Date, end_date, client, percentage
, Last_EndDate = LAG(end_date, 1, Start_Date)
OVER (PARTITION BY client ORDER BY Start_Date)
FROM Table1
)
SELECT DISTINCT client
FROM Gaps
WHERE DateDiff(d, Last_EndDate, Start_Date) NOT IN (0, 1)
SQLFiddle Demo
The query assume that the following data is correct
2014-01-31, 2014-02-28, 'client a', 100
2014-03-01, 2014-05-01, 'client a', 100
2014-01-31, 2014-03-01, 'client b', 100
2014-03-01, 2014-05-01, 'client b', 100
client a as the two rows with adjacent end date and start date, client b as the same end date and start date. If only the former is correct the query need to be changed
WITH Gaps AS (
SELECT Start_Date, end_date, client, percentage
, Last_EndDate = LAG(end_date, 1, DateAdd(d, -1, Start_Date))
OVER (PARTITION BY client ORDER BY Start_Date)
FROM Table1
)
SELECT DISTINCT client
FROM Gaps
WHERE DateDiff(d, Last_EndDate, Start_Date) <> 1
SQLFiddle Demo