SELECT t.Person,MIN(t.[DATE]) AS LeaveStart,MAX(t.[Date]) AS LeaveEnd
FROM Table t
OUTER APPLY (SELECT MIN(DATE) AS [Date]
FROM Table
WHERE Person = t.Person
AND SHIFTTYPE='WORKING'
AND DATE > t.DATE
)t1
WHERE t.SHIFTTYPE <> 'WORKING'
GROUP BY t.Person,t1.[Date]
------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/