Bonjour,

Je cherche la requête sql qui me permettrait de décomposer une période en plusieurs sous-périodes en fonction des évènements périodiques d'une autre table.
Exemple : décomposition d'un contrat en fonction des périodes de suspensions éventuelles.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
with
tb_contrats as
(
select '000210' matricule, '10/01/2000' deb, '31/12/2035' fin, 'CDI' type_contrat FROM Dual Union all
select '000340' matricule, '10/07/2003' deb, '31/12/2035' fin, 'CDI' type_contrat FROM Dual Union all
select '004580' matricule, '01/01/2010' deb, '15/02/2010' fin, 'CDD' type_contrat FROM Dual Union all
select '004580' matricule, '01/06/2010' deb, '30/05/2011' fin, 'CDD' type_contrat FROM Dual
),
tb_suspensions as
(
select '000210' matricule, '18/01/2012' deb, '17/06/2014' fin FROM Dual Union all
select '004580' matricule, '12/10/2010' deb, '30/11/2010' fin FROM Dual
)
Résultat attendu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
MATRICULE DEB        FIN        TYPE_CONTRAT 
--------- ---------- ---------- ------------ 
000210    10/01/2000 17/01/2012 CDI          
000210    18/01/2012 17/06/2014 CDI SUSPENSION
000210    18/01/2014 31/12/2035 CDI          
000340    10/07/2003 31/12/2035 CDI          
004580    01/01/2010 15/02/2010 CDD          
004580    01/06/2010 11/10/2010 CDD          
004580    12/10/2010 30/11/2010 CDD SUSPENSION
004580    01/12/2010 30/05/2011 CDD
Merci d'avance pour votre aide précieuse.
Faut que je prenne des vitamines là ...