Je dispose d'un jeu de données avec l'identifiant, le statut et la plage de dates des employés.
Le jeu de données d'entrée ci-dessous contient les détails d'un employé.
Les plages de dates dans les enregistrements sont continues (dans l'ordre exact) de sorte que la date de début de la deuxième ligne sera la date suivante de la date de fin de la première ligne.
Si un employé prend un congé de manière continue pendant différents mois, alors le tableau enregistre les informations avec une plage de dates séparée pour différents mois.
Par exemple : Dans l'ensemble d'entrée, l'employé a pris un congé maladie du '16-10-2016' au '31-12-2016' et est revenu le '1-1-2017'.
Il y a donc 3 enregistrements pour cet élément mais les dates sont continues. Dans la sortie, j'ai besoin de cela comme un seul enregistrement comme indiqué dans l'ensemble de sortie attendu.
ENTRÉE
Id Status StartDate EndDate
1 Actif 1-9-2007 15-10-2016
1 Malade 16-10-2016 31-10-2016
1 Malade 1-11-2016 30-11-2016
1 Malade 1-12-2016 31-12-2016
1 Actif 1-1-2017 4-2-2017
1 Non payé 5-2-2017 9-2-2017
1 Actif 10-2-2017 11-2-2017
1 Non payé 12-2-2017 28-2-2017
1 Non payé 1-3-2017 31-3-2017
1 Non payé 1-4-2017 30-4-2017
1 Actif 1-5-2017 13-10-2017
1 Malade 14-10-2017 11-11-2017
1 Actif 12-11-2017 NULL
ENREGISTREMENT ATTENDU
Id Status StartDate EndDate
1 Actif 1-9-2007 15-10-2016
1 Malade 16-10-2016 31-12-2016
1 Actif 1-1-2017 4-2-2017
1 Non payé 5-2-2017 9-2-2017
1 Actif 10-2-2017 11-2-2017
1 Non payé 12-2-2017 30-4-2017
1 Actif 1-5-2017 13-10-2017
1 Malade 14-10-2017 11-11-2017
1 Actif 12-11-2017 NULL
Je ne peux pas prendre min(startdate) et max(EndDate) regroupés par id, statut car si le même employé prend un autre congé maladie alors cette date de fin ('11-11-2017' dans l'exemple) sera la date de fin.
Est-ce que quelqu'un peut m'aider avec la requête dans SQL server 2014?