Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / объединение отрезков / 11 сообщений из 11, страница 1 из 1
04.07.2016, 15:02:12
    #39267401
mnemolog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
есть данные
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
with t1 as (
  select 0 b, 100 e, 'A1' f from dual
    union all
  select 100 b, 200 e, 'A2' f from dual
    union all
  select 200 b, 300 e, 'A3' f from dual
    union all
  select 300 b, 400 e, 'A4' f from dual)
,t2 as (
  select 0 b,250 e,'B1' from dual
    union all
  select 250 b, 400 e,'B2' from dual
)


Необходимо получить:
BEF1F20100'A1''B1'100200'A1''B1'200250'A1''B1'250300'A1''B1'300400'A1''B1'

Подскажите направление, у меня идей нет.
...
Рейтинг: 0 / 0
04.07.2016, 15:12:21
    #39267411
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
mnemologнаправлениетаблицы объединяют с помощью JOIN
...
Рейтинг: 0 / 0
04.07.2016, 15:15:35
    #39267414
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
mnemolog,

А почему B2 нигде нет?
...
Рейтинг: 0 / 0
04.07.2016, 15:18:32
    #39267417
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
mnemologПодскажите направление, у меня идей нет. Интервалы с учетом приоритета на SQL.
...
Рейтинг: 0 / 0
04.07.2016, 15:24:24
    #39267427
mnemolog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
Ошибся в данных
BEF1F20100'A1''B1'100200'A2''B1'200250'A3''B1'250300'A3''B2'300400'A4''B2'
...
Рейтинг: 0 / 0
04.07.2016, 15:34:24
    #39267441
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
mnemolog,

возможно, идеи там - 2787115
...
Рейтинг: 0 / 0
05.07.2016, 07:19:39
    #39267732
объединение отрезков
mnemolog,

Код: plsql
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.
30.
31.
32.
33.
34.
--
-- Твои тестовые данные:
with
  t1 as 
    (
      select 0 b, 100 e, 'A1' f from dual union all
      select 100 b, 200 e, 'A2' f from dual union all
      select 200 b, 300 e, 'A3' f from dual union all
      select 300 b, 400 e, 'A4' f from dual
    )
, t2 as
    (
      select 0 b,250 e,'B1' f from dual union all
      select 250 b, 400 e,'B2' from dual
    )
--
-- Идеи Elic-a в коде:
select i.b, i.e, t1.f as f1, t2.f as f2
 from (
        select p as b, lead(p) over(order by p) as e
          from (
                 select b as p from t1 union
                 select b as p from t2 union
                 select e as p from t1 union
                 select e as p from t2
               ) points
      ) i
  join t1
    on t1.e > i.b
   and t1.b < i.e
  join t2
    on t2.e > i.b
   and t2.b < i.e
 order by i.b
...
Рейтинг: 0 / 0
05.07.2016, 10:46:41
    #39267797
mnemolog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
Добрый Э - Эх,
Спасибо
...
Рейтинг: 0 / 0
05.07.2016, 11:13:48
    #39267811
объединение отрезков
Добрый Э - Эх,

наперемудрил. здесь обычный джоин двух таблиц и без анальных извращений.
...
Рейтинг: 0 / 0
05.07.2016, 11:18:04
    #39267819
объединение отрезков
греа и леа тест,

сделай на простом джойне. в чем проблема-то?
...
Рейтинг: 0 / 0
05.07.2016, 11:35:52
    #39267834
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
объединение отрезков
Код: plsql
1.
2.
3.
4.
5.
select greatest(t1.b, t2.b) b, least(t1.e, t2.e) e, t1.f, t2.f
from t1
join t2
  on t1.b<t2.e and t1.e>t2.b
order by 1
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / объединение отрезков / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]