Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle запрос / 9 сообщений из 9, страница 1 из 1
19.11.2018, 20:19
    #39735305
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
Код: plsql
1.
2.
3.
4.
5.
6.
with bkb as (select 'aaa111aaa' as barcode,'priem' as status,to_date('19.11.2018 13:24:56','dd.mm.yyyy hh24:mi:ss') as data1,to_date('19.11.2018 13:24:56','dd.mm.yyyy hh24:mi:ss') as data2 from dual union all
select 'aaa111aaa' as barcode,'vrucheno' as status, to_date('20.11.2018 15:00:59','dd.mm.yyyy hh24:mi:ss') as data1,to_date('20.11.2018 15:00:59','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'priem' as status, to_date('21.11.2018 18:11:02','dd.mm.yyyy hh24:mi:ss') data1,to_date('21.11.2018 18:11:02','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'peredano' as status, to_date('22.11.2018 19:15:15','dd.mm.yyyy hh24:mi:ss') as data1,to_date('22.11.2018 19:15:15','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'vrucheno' as status, to_date('23.11.2018 22:22:22','dd.mm.yyyy hh24:mi:ss') as data1 ,to_date('23.11.2018 22:22:22','dd.mm.yyyy hh24:mi:ss') as data2  from dual )
select * from bkb
...
Рейтинг: 0 / 0
19.11.2018, 20:24
    #39735306
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
sanzhar333,Имеется такая таблица
...
Рейтинг: 0 / 0
19.11.2018, 20:25
    #39735307
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
sanzhar333,как можно получить такой результат
...
Рейтинг: 0 / 0
19.11.2018, 20:27
    #39735312
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
sanzhar333,
то есть такой результат
...
Рейтинг: 0 / 0
19.11.2018, 20:33
    #39735317
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
sanzhar333,статусы могут быть разные,нужно выбрать status1 по MIN(data1),и status2 по MAX(data1)
...
Рейтинг: 0 / 0
19.11.2018, 20:36
    #39735319
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
sanzhar333sanzhar333,как можно получить такой результат

Какие трудности?
одну и ту же таблицу, и прописываю ту логику что тебе нужно:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
with bkb as (select 'aaa111aaa' as barcode,'priem' as status,to_date('19.11.2018 13:24:56','dd.mm.yyyy hh24:mi:ss') as data1,to_date('19.11.2018 13:24:56','dd.mm.yyyy hh24:mi:ss') as data2 from dual union all
select 'aaa111aaa' as barcode,'vrucheno' as status, to_date('20.11.2018 15:00:59','dd.mm.yyyy hh24:mi:ss') as data1,to_date('20.11.2018 15:00:59','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'priem' as status, to_date('21.11.2018 18:11:02','dd.mm.yyyy hh24:mi:ss') data1,to_date('21.11.2018 18:11:02','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'peredano' as status, to_date('22.11.2018 19:15:15','dd.mm.yyyy hh24:mi:ss') as data1,to_date('22.11.2018 19:15:15','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'vrucheno' as status, to_date('23.11.2018 22:22:22','dd.mm.yyyy hh24:mi:ss') as data1 ,to_date('23.11.2018 22:22:22','dd.mm.yyyy hh24:mi:ss') as data2  from dual )
select 
    t1.barcode
    ,t1.data1 as dt1
    ,t2.data1 as dt2 
from bkb t1
     ,bkb t2
where 
   t1.barcode=t2.barcode
   and t1.status='priem'
   and t2.status='vrucheno'
;

BARCODE   DT1       DT2
--------- --------- ---------
aaa111aaa 19-NOV-18 20-NOV-18
bbb222bbb 21-NOV-18 23-NOV-18
...
Рейтинг: 0 / 0
19.11.2018, 21:00
    #39735327
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
Если даты в пределах одного баркода уникальны, то
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
SQL> with bkb as (select 'aaa111aaa' as barcode,'priem' as status,to_date('19.11.2018 13:24:56','dd.mm.yyyy hh24:mi:ss') as data1,to_date('19.11.2018 13:24:56','dd.mm.yyyy hh24:mi:ss') as data2 from dual union all
select 'aaa111aaa' as barcode,'vrucheno' as status, to_date('20.11.2018 15:00:59','dd.mm.yyyy hh24:mi:ss') as data1,to_date('20.11.2018 15:00:59','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'priem' as status, to_date('21.11.2018 18:11:02','dd.mm.yyyy hh24:mi:ss') data1,to_date('21.11.2018 18:11:02','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'peredano' as status, to_date('22.11.2018 19:15:15','dd.mm.yyyy hh24:mi:ss') as data1,to_date('22.11.2018 19:15:15','dd.mm.yyyy hh24:mi:ss') as data2 from dual  union all
select 'bbb222bbb' as barcode,'vrucheno' as status, to_date('23.11.2018 22:22:22','dd.mm.yyyy hh24:mi:ss') as data1 ,to_date('23.11.2018 22:22:22','dd.mm.yyyy hh24:mi:ss') as data2  from dual )
---------------------------------------------------------
select  t1.barcode
     , min(t1.status) keep (dense_rank first order by t1.data1) as status
     , min(t1.data1) as data1
     , max(t1.status) keep (dense_rank last order by t1.data1) as status2
     , max(t1.data1) as data2
from bkb t1
group by t1.barcode
order by t1.barcode
;

BARCODE   STATUS   DATA1               STATUS2  DATA2
--------- -------- ------------------- -------- -------------------
aaa111aaa priem    19.11.2018 13:24:56 vrucheno 20.11.2018 15:00:59
bbb222bbb priem    21.11.2018 18:11:02 vrucheno 23.11.2018 22:22:22

SQL> 


Если на одну дату может приходиться несколько статусов, то следует определить какой из них предпочесть (в представленной версии - просто min и max для статусов 1 и 2 соответственно, что не вполне корректно)
...
Рейтинг: 0 / 0
20.11.2018, 04:04
    #39735391
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
Vadim Lejnin,спасибо за отклик,но, как писал выше в комментах., статусы могуть быть разные
...
Рейтинг: 0 / 0
20.11.2018, 04:05
    #39735392
sanzhar333
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Oracle запрос
andrey_anonymous,спасибо вам, как сяду на компьютер посмотрю
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle запрос / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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