Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
Задача: Имеется 3 таблицы одинаковой структуры:
T1: id, date_order (Заказ)
T2: id, date_send (Отправка)
T3: id, date_get (Получение)
- Таблицы можно связать по id
- Возможно, что какие-то id могут отсутствовать в таблицах, т.е. если в таблице T1, есть id=1, это не значит, что он есть в T2 или T3
- В таблицах возможно наличие дублирующейся информации
В результирующем запросе нужно использовать аналитические функции, с целью извлечь для id цепочки типа (заказ-отправка получения), т.е. одна запись в результате - это date_order,date_send,date_get
В рамках одной записи действует логика date_order<date_send<date_get
Пример:
T1:
1| 05.01.09
1| 11.01.09
T2:
1| 01.12.08
T3:
1| 10.01.09
1|30.11.08

В результате надо получить:
order | send | get
05.01.09 | NULL | 10.01.09
NULL | 01.12.08 | NULL
11.01.09 | NULL | NULL
NULL | NULL | 31.11.08

Простым запросом на sql понятно как сделать, а вот с использованием аналитических функций и "максимально красиво" не получается.


Буду благодарен на любые мысли и идеи.
22 июл 11, 11:10    [11011120]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
shubarka,

автор
"максимально красиво"

это без
автор
с использованием аналитических функций
22 июл 11, 11:18    [11011201]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
Описка:
в примере не
NULL | NULL | 31.11.08

NULL | NULL | 30.11.08
22 июл 11, 11:20    [11011208]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
AlexFF__|,

задание стоит именно с аналитическими функциями. Красота же понятие относительное. :-) Может у вас и мысли по существу есть?
22 июл 11, 11:21    [11011226]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
Только сейчас увидел, задача идиотская.
22 июл 11, 11:23    [11011241]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
AlexFF__|
Только сейчас увидел, задача идиотская.

Согласен, но решение этой идиотской задачи у вас есть?
22 июл 11, 12:09    [11011677]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
Может я не четко сформулировал задачу? Готов уточнить условие. :-) Очень интересно какое решение будет. Просто может мысли какие есть? Я понимаю, что редко на практике такую задачу можно встретить.
22 июл 11, 13:19    [11012222]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
shubarka
Задача: Имеется 3 таблицы одинаковой структуры:


Хорошее решение: сделать одну таблицу, в которой изложить на языке DDL все Ваши ограничения для дат.

Плохое решение: оставить как есть и продолжить эквилибристику с SQL. Например:

select id, min(date_order) date_order, max(date_send) date_send, max(date_get) date_get
     , count(date_order) cnt_order, count(date_send) cnt_send, count(date_get) cnt_get
  from (
select id, date_order, to_date(null) date_send, to_date(null) date_get from t1
  union all
select id, to_date(null) date_order, date_send, to_date(null) date_get from t2
  union all
select id, to_date(null) date_order, to_date(null) date_send, date_get from t3
)
group by id

Хоть с аналитическими функциями, хоть с агрегатами, хоть с чем - красоты в этом будет мало при такой модели базы данных.

Кроме того, у Вас в желаемом результате откуда-то взялась дата 31.11.08.
22 июл 11, 16:10    [11013689]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
shubarka
Может я не четко сформулировал задачу?
У тебя в первом столбце сортировка по возрастанию, а в третьем по убыванию.
Мой хрустальный шар выдал такой вариант (с аналитикой как ты просил :)):
SQL> with T1 as
  2  (select to_date('05.01.09','dd.mm.yy') dt from dual
  3  union all select to_date('11.01.09','dd.mm.yy') from dual)
  4  , T2 as
  5  (select to_date('01.12.08','dd.mm.yy') dt from dual)
  6  , T3 as
  7  (select to_date('10.01.09','dd.mm.yy') dt from dual
  8  union all select to_date('30.11.08','dd.mm.yy') from dual)
  9  , T_all as
 10  (select 1 type, dt
 11  from t1
 12  union
 13  select 2 type, dt
 14  from t2
 15  union
 16  select 3 type, dt
 17  from t3)
 18  select *
 19  from
 20  (select type, dt, sum(sign) over (order by dt) chain
 21  from
 22  (select case when lag(type) over (order by dt) < type then 0 else 1 end sign, t.* from t_all t))
 23  pivot (min(dt) for type in ('1' as "order", '2' as "send", '3' as "get"))
 24  order by chain desc
 25  /

     CHAIN order     send      get
---------- --------- --------- ---------
         4 11-JAN-09
         3 05-JAN-09           10-JAN-09
         2           01-DEC-08
         1                     30-NOV-08

SQL>
22 июл 11, 16:24    [11013805]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
suPPLer
Плохое решение: оставить как есть и продолжить эквилибристику с SQL.
Я, конечно, может неправильно стелепатировал, но вроде не все так плохо? :)
Допустим у него в базу пишется факт заказ/отправка/получение в соответствующую таблицу. При этом пишущий процесс не имеет представления как этот факт связан с другими. Соответственно при выводе просто надо определить цепочки заказ/отправка/получение и транспонировать.
Если события заказ - отправка - получение не слудуют строго последовательно, соответственно никаких ограничений добавить невозможно.
22 июл 11, 16:32    [11013881]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
dbms_photoshop
Я, конечно, может неправильно стелепатировал, но вроде не все так плохо? :)


У ТС есть ID. По его описанию лично я понял, что ID - идентификатор сущности, разбитой зачем-то на три таблицы. Зачем могут потребоваться дубли атрибутов этой сущности, я пока не понимаю. Почему могут быть дубли атрибутов, могу предположить: неудачная модель БД. Изощряться с аналитикой, агрегатами и прочим можно, но только ради общего развития. :)
22 июл 11, 17:58    [11014510]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
suPPLer
У ТС есть ID. По его описанию лично я понял, что ID - идентификатор сущности, разбитой зачем-то на три таблицы. Зачем могут потребоваться дубли атрибутов этой сущности, я пока не понимаю. Почему могут быть дубли атрибутов, могу предположить: неудачная модель БД. Изощряться с аналитикой, агрегатами и прочим можно, но только ради общего развития. :)
Если предположить что ID - айдишник клиента, к которому относятся order-send-get, то записи в таблицах превращаются из атрибутов в события, связанные с клиентом. Которых потенциально бесконечное число.
22 июл 11, 18:14    [11014602]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
Хитроглазый
Member

Откуда:
Сообщений: 504
shubarka,

в FAQ написано как пронумеровать результаты запроса:
в запросе нумеруешь таблицы и соединяешь их по id
22 июл 11, 18:18    [11014630]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
Хитроглазый
Member

Откуда:
Сообщений: 504
то есть по id и номеру
22 июл 11, 18:19    [11014636]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
Спасибо за идеи и варианты, сейчас постараюсь вдуматься и просмотрю ваши запросы.
Уточню.
Структуры таблиц наверное проектировал человек вообще не очень хорошо соображающий в проектировании БД.
id - это НЕ первичный ключ в таблицах это ну скажем id заказчика и может повторяться в рамках одной таблицы.
Опираться на конкретные данные в таблиц мы не можем они там могут меняться, т.е. я привел всего лишь пример, а стараюсь написать запрос универасально. На sql у меня получилось вот так:
select p.id, DATE_order as date_order, MIN(DATe_send) as date_send, MIN(DATe_get) as date_get
from
(select * from t1 p group by p.id, p.date_order) p 
left join (select * from t2 b group by b.id, b.date_send) b on p.id=b.id 
                                                         and (p.date_order<b.date_send 
                                                         or b.date_send is null or p.date_order is null)
left join (select * from t3 o group by o.id, o.date_get) o on o.id=p.id
                                                         and (p.date_order<o.date_get or o.date_get is null)
                                                         and (b.date_send<o.date_get or b.date_send is null)

group by p.id, date_order
union all
select b.id, MIN(date_order) as date_order, MIN(date_send) as date_send, MIN(date_get) as date_get
from
(select * from t2 b group by b.id, b.date_send) b 
left join (select * from t1 p group by p.id, p.date_order) p on p.id=b.id 
                                                         and (p.date_order<b.date_send 
                                                         or b.date_send is null or p.date_order is null)
left join (select * from t3 o group by o.id, o.date_get) o on o.id=p.id
                                                         and (p.date_order<o.date_get or o.date_get is null)
                                                         and (b.date_send<o.date_get or b.date_send is null)
where p.id is null
group by b.id, date_send
union all
select o.id, MIN(date_order) as date_order, MIN(date_send) as date_send, MIN(date_get) as date_get
from
(select * from t3 o group by o.id, o.date_get) o 
left join 
(select * from t2 b group by b.id, b.date_send) b
on o.id=b.id and (o.date_get>b.date_send or b.date_send is null)
left join (select * from t1 p group by p.id, p.date_order) p on p.id=b.id 
                                                         and (p.date_order<b.date_send or b.date_send is null)
                                                          and (p.date_order<o.date_get or o.date_get is null) 
where date_send is null and date_order is null
group by o.id, date_get
order by id
Такой запрос выдает в независимости от данных тот результат который нужен.
Теперь "кумекаю" с использованием аналитических функций, надеюсь там (как написано у Тома в книге) производительность будет выше.
22 июл 11, 20:12    [11015031]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
shubarka
Структуры таблиц наверное проектировал человек вообще не очень хорошо соображающий в проектировании БД.
id - это НЕ первичный ключ в таблицах это ну скажем id заказчика и может повторяться в рамках одной таблицы.


dbms_photoshop, браво!
22 июл 11, 20:26    [11015056]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
Пример
T1:
ID	DATE_ORDER
1	01.01.2011 00:00:00
3	05.01.2011 00:00:00
1	01.01.2011 00:00:00
3	11.01.2011 00:00:00
1	02.01.2011 00:00:00
2	03.01.2011 00:00:00
2	04.01.2011 00:00:00
2	06.01.2011 00:00:00
2	09.01.2011 00:00:00
T2:
ID	DATE_SEND
1	01.01.2011 12:00:00
1	02.01.2011 13:00:00
3	10.01.2011 00:00:00
2	03.01.2011 11:00:00
3	30.11.2010 00:00:00
2	05.01.2011 15:00:00
2	05.01.2011 15:00:00
2	08.01.2011 16:00:00
2	11.01.2011 09:00:00
T3:
ID	DATE_GET
1	01.01.2011 06:00:00
1	02.01.2011 03:00:00
2	03.01.2011 10:00:00
3	01.12.2010 00:00:00
2	04.01.2011 12:00:00
2	07.01.2011 15:00:00
2	10.01.2011 01:01:02
1	01.01.2011 06:00:00
Результат:


ID |	DATE_ORDER                      DATE_SEND                  DATE_GET      
------------------------------------------------------------------------------------------------------
1  |    01.01.2011 00:00:00     01.01.2011 06:00:00     01.01.2011 12:00:00 
3  |    05.01.2011 00:00:00   	                        10.01.2011 00:00:00            
3  |	                   	01.12.2010 00:00:00	
3  |    11.01.2011 00:00:00		
3  |			                                30.11.2010 00:00:00
1  |	02.01.2011 00:00:00	02.01.2011 03:00:00	02.01.2011 13:00:00
2  |	03.01.2011 00:00:00	03.01.2011 10:00:00	03.01.2011 11:00:00
2  |	04.01.2011 00:00:00	04.01.2011 12:00:00	05.01.2011 15:00:00
2  |	06.01.2011 00:00:00	07.01.2011 15:00:00	08.01.2011 16:00:00
2  |	09.01.2011 00:00:00	10.01.2011 01:02	11.01.2011 00:00:00
22 июл 11, 20:34    [11015074]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
shubarka
Пример
Расскажи пожалуйста а нафига ты приводишь в таком виде все эти данные?
Сложно привести в виде "with ... as"?
Результат сложно выдать из SQL*Plus?
Видно что ты чуть ли не руками вводил и входные данные и результат вследствие чего у тебя перепутались таблицы T2 и T3 а в результате имеются вообще странные данные.
Что касается твоего запроса - то нужно иметь феноменально воспаленный мозг чтоб такое выдать. Кроме того, без сортировки, результат запроса недетерминирован.
Но больше все го мне интересно, когда ты занимался вот этим:
shubarka
"кумекаю" с использованием аналитических функций, надеюсь там (как написано у Тома в книге) производительность будет выше
Тебе не пришло на ум взглянуть на мой запрос выше и допилить его до случая когда ID может быть несколько?
SQL> with T1 as
  2  (select 1 id, to_date('01.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') date_order from dual
  3  union all select 3  , to_date('05.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
  4  union all select 1  , to_date('01.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
  5  union all select 3  , to_date('11.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
  6  union all select 1  , to_date('02.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
  7  union all select 2  , to_date('03.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
  8  union all select 2  , to_date('04.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
  9  union all select 2  , to_date('06.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 10  union all select 2  , to_date('09.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual)
 11  , T3 as
 12  (select 1 id, to_date('01.01.2011 12:00:00','dd.mm.yyyy hh24.mi.ss') date_get from dual
 13  union all select 1  , to_date('02.01.2011 13:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 14  union all select 3  , to_date('10.01.2011 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 15  union all select 2  , to_date('03.01.2011 11:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 16  union all select 3  , to_date('30.11.2010 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 17  union all select 2  , to_date('05.01.2011 15:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 18  union all select 2  , to_date('05.01.2011 15:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 19  union all select 2  , to_date('08.01.2011 16:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 20  union all select 2  , to_date('11.01.2011 09:00:00','dd.mm.yyyy hh24.mi.ss') from dual)
 21  , T2 as
 22  (select 1 id, to_date('01.01.2011 06:00:00','dd.mm.yyyy hh24.mi.ss') date_send from dual
 23  union all select 1  , to_date('02.01.2011 03:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 24  union all select 2  , to_date('03.01.2011 10:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 25  union all select 3  , to_date('01.12.2010 00:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 26  union all select 2  , to_date('04.01.2011 12:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 27  union all select 2  , to_date('07.01.2011 15:00:00','dd.mm.yyyy hh24.mi.ss') from dual
 28  union all select 2  , to_date('10.01.2011 01:01:02','dd.mm.yyyy hh24.mi.ss') from dual
 29  union all select 1  , to_date('01.01.2011 06:00:00','dd.mm.yyyy hh24.mi.ss') from dual)
 30  , T_all as
 31  (select 1 type, id, date_order dt
 32  from t1
 33  union
 34  select 2 type, id, date_send dt
 35  from t2
 36  union
 37  select 3 type, id, date_get dt
 38  from t3)
 39  select *
 40  from
 41  (select id, type, dt, sum(sign) over (partition by id order by dt) chain
 42  from
 43  (select case when lag(type) over (partition by id order by dt) < type then 0 else 1 end sign, t.* from t_all t))
 44  pivot (min(dt) for type in ('1' as "order", '2' as "send", '3' as "get"))
 45  order by id, chain
 46  /
 
        ID      CHAIN order                send                 get
---------- ---------- -------------------- -------------------- --------------------
         1          1 01.01.2011           01.01.2011 6:00:00   01.01.2011 12:00:00
         1          2 02.01.2011           02.01.2011 3:00:00   02.01.2011 13:00:00
         2          1 03.01.2011           03.01.2011 10:00:00  03.01.2011 11:00:00
         2          2 04.01.2011           04.01.2011 12:00:00  05.01.2011 15:00:00
         2          3 06.01.2011           07.01.2011 15:00:00  08.01.2011 16:00:00
         2          4 09.01.2011           10.01.2011 1:01:02   11.01.2011 9:00:00
         3          1                                           30.11.2010
         3          2                      01.12.2010           
         3          3 05.01.2011                                10.01.2011
         3          4 11.01.2011                                
 
10 rows selected
Не это ли ты хочешь получить?
22 июл 11, 22:51    [11015447]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
shubarka
Такой запрос выдает в независимости от данных тот результат который нужен.
Не, ну все-таки это просто п****ц!
Я думаю ты по праву заслужил переходящий флаг. Более извращенный запрос человек со здоровой психикой родить вряд ли способен.
22 июл 11, 23:02    [11015488]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
dbms_photoshop,

У меня на момент написания вопроса отсуствовал Oracle и средство разработки под него, только Ворд-документ с описанием задачи.
Надеюсь это ответит на твое любопытство относительно "расскажи .... и почему...".
За путницу в t2 и t3 извиняюсь.
Признаюсь контсрукцию with ... as я не использовал и нечего о ней не знал.
Насчет того, что тебе больше всего интересно, если внимально смотреть на сообщение, что видно, что я благодарю за идеи, варианты и сообщаю, что ИЗУЧУ (т.е. еще не читал всех сообщений ветки).

Пишется запрос на Oracle 10g Express, а pivot как понял появился с 11-ой, покрайней мере у меня выдается ошибка. И как следствие выходит, что в таком виде запрос не "катит".

Как, то эмоций отризательных в сообщении у тебя много и ругаешься. Приз можешь себе оставить. Поспокойней пожалуйста.
23 июл 11, 09:30    [11016268]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
shubarka
Насчет того, что тебе больше всего интересно, если внимально смотреть на сообщение, что видно, что я благодарю за идеи, варианты и сообщаю, что ИЗУЧУ (т.е. еще не читал всех сообщений ветки).
Вот только еще не понятно что тобой двигало, когда ты постил свой вариант. Можешь не отвечать, вопрос риторический.
shubarka
Пишется запрос на Oracle 10g Express, а pivot как понял появился с 11-ой, покрайней мере у меня выдается ошибка. И как следствие выходит, что в таком виде запрос не "катит".
На самом деле pivot в продакшене я не использую, а только в таких случаях как с тобой чтоб на пару строчек кода меньше писать. Я уж думаю ты догадаешься как допилить до 10-ки.
shubarka
Как, то эмоций отризательных в сообщении у тебя много и ругаешься. Приз можешь себе оставить. Поспокойней пожалуйста.
Я пишу ответы в надежде, что вопрошающий способен думать. Меня расстраивает когда это не так. Сопли не надо здесь размазывать, пожалуйста.
23 июл 11, 11:31    [11016347]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
Elic
Member

Откуда:
Сообщений: 29990
shubarka
Как, то эмоций отризательных в сообщении у тебя много и ругаешься. Приз можешь себе оставить. Поспокойней пожалуйста.
Гуано всплыло обидеться на то, как оно пахнет?
23 июл 11, 12:02    [11016400]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
Elic
shubarka
Как, то эмоций отризательных в сообщении у тебя много и ругаешься. Приз можешь себе оставить. Поспокойней пожалуйста.
Гуано всплыло обидеться на то, как оно пахнет?
Спасибо на добром слове. Я тебя тоже очень ценю.
23 июл 11, 12:10    [11016417]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
shubarka
Member

Откуда:
Сообщений: 11
dbms_photoshop
Elic
пропущено...
Гуано всплыло обидеться на то, как оно пахнет?
Спасибо на добром слове. Я тебя тоже очень ценю.

:-))) Вижу два "специалиста" нашли друг друга. :-))))))) Поддерживаете друг дружку?! Можете не отчечать вопрос риторический.
23 июл 11, 12:26    [11016455]     Ответить | Цитировать Сообщить модератору
 Re: Интересный запрос: Аналитика при запросе по датам  [new]
Partos
Member

Откуда:
Сообщений: 878
select nvl(q2.id, q1.id) as id, q2.data_order, q2.data_send, q1.data_get
from
(
select nvl(t1.id,t2.id) as id, t1.data_order, t2.data_send
From
T1 full outer join T2 on t1.id=t2.id
) q2 full outer join t3 q1 on q2.id=q1.id
23 июл 11, 22:05    [11017667]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить