1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| With Table_origine As (Select To_date ('01/09/2010', 'DD/MM/YYYY') Ma_date From Dual Union All
Select To_date ('02/09/2010', 'DD/MM/YYYY') Ma_date From Dual Union All
Select To_date ('03/09/2010', 'DD/MM/YYYY') Ma_date From Dual Union All
Select To_date ('15/09/2010', 'DD/MM/YYYY') Ma_date From Dual)
Select Date_debut_periode,
Max (Ma_date) Date_fin_periode,
To_char (Date_debut_periode, 'DD/MM/YYYY') || ' au ' || To_Char (Max (Ma_date), 'DD/MM/YYYY') Periode
From (Select Ma_date,
Max (Date_debut) Over (Order By Ma_date Asc) Date_debut_periode
From (Select Ma_date,
Case When Lag (Ma_date) Over (Order By Ma_date Asc) = (Ma_date - 1) Then Null Else Ma_date End Date_debut
From Table_origine))
Group By Date_debut_periode;
DATE_DEB DATE_FIN PERIODE
-------- -------- ------------------------
01/09/10 03/09/10 01/09/2010 au 03/09/2010
15/09/10 15/09/10 15/09/2010 au 15/09/2010 |
Partager