1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| With SITE As
(Select 'ID_site_1' as id_site, 'REF_1' as ref_site From Dual Union All
Select 'ID_site_2' as , 'REF_2' as From Dual Union All
Select 'ID_site_2' as , 'REF_2' as From Dual ),
RECU As
(Select 'ID_1' as id_recu, 1 as ref_recu ,'ID_site_1' as id_site From Dual Union All
Select 'ID_2' , 2 ,'ID_site_1' From Dual Union All
Select 'ID_3' , 3 ,'ID_site_1' From Dual Union All
Select 'ID_4' , 4 ,'ID_site_1' From Dual Union All
Select 'ID_30' , 30 ,'ID_site_1' From Dual Union All
Select 'ID_31' , 31 ,'ID_site_1' From Dual )
select site.ref_site,
min (ref_recu) as debut,
max (ref_recu) as fin
from site,
(select id,
id_site,
ref_recu,
max(debut_plage_recu) over (partition by id_site order by ref_recu) as debut_plage_recu
from (select id,
ref_recu,
id_site,
decode (lag (ref_recu) over (partition by id_site order by ref_recu), ref_recu-1, null, ref_recu) as debut_plage_recu
from recu
) recu_v1
) recu_v2
Where site.id_site = recu_v2.id_site
Group By site.ref_site,
recu_v2.debut_plage_recu |
Partager