Here is a solution that worked for me.
SELECT EID, AbsenceType, MIN(AbsenceStartDate) AS AbsenceStartDate, MAX(AbsenceEndDate) AS AbsenceEndDate FROM (SELECT EID, AbsenceType, AbsenceStartDate, AbsenceEndDate, DATEADD(dd, - ROW_NUMBER() OVER (PARTITION BY EID, AbsenceType ORDER BY EID,AbsenceStartDate), AbsenceStartDate) FROM AbsenceDetails GROUP BY EID,AbsenceType,AbsenceStartDate,AbsenceEndDate ) a(EID, AbsenceType, AbsenceStartDate, AbsenceEndDate, Grp) GROUP BY EID, AbsenceType, Grp;
user1682461
source share