Здравствуйте, FunnyRabbit, Вы писали:
FR>
Ну так я же просил решения полностью. А в предложеном Вами варианте, ооооочень много вариаций.
Я не очень вижу вариации, но готов преодолеть свою лень
Connected to Oracle9i Enterprise Edition Release 9.2.0.6.0
Connected as test
SQL> with
2 work_data as (
3 select to_date ( '01.01.2006', 'dd.mm.yyyy' ) work_date, 10 id_work from dual union all
4 select to_date ( '02.01.2006', 'dd.mm.yyyy' ) work_date, 10 id_work from dual union all
5 select to_date ( '04.02.2006', 'dd.mm.yyyy' ) work_date, 20 id_work from dual union all
6 select to_date ( '05.02.2006', 'dd.mm.yyyy' ) work_date, 20 id_work from dual union all
7 select to_date ( '03.03.2006', 'dd.mm.yyyy' ) work_date, 50 id_work from dual union all
8 select to_date ( '04.03.2006', 'dd.mm.yyyy' ) work_date, 10 id_work from dual union all
9 select to_date ( '05.03.2006', 'dd.mm.yyyy' ) work_date, 10 id_work from dual ),
10 prepared as (
11 select work_date, id_work, work_date - rownum grp_date from work_data order by id_work, work_date )
12 select
13 id_work, min ( work_date ), max ( work_date )
14 from
15 prepared
16 group by
17 id_work, grp_date
18 order by
19 2
20 ;
ID_WORK MIN(WORK_DATE) MAX(WORK_DATE)
---------- -------------- --------------
10 01.01.2006 02.01.2006
20 04.02.2006 05.02.2006
50 03.03.2006 03.03.2006
10 04.03.2006 05.03.2006
SQL>