powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle запрос
9 сообщений из 9, страница 1 из 1
Oracle запрос
    #39735305
sanzhar333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Oracle запрос
    #39735306
sanzhar333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanzhar333,Имеется такая таблица
...
Рейтинг: 0 / 0
Oracle запрос
    #39735307
sanzhar333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanzhar333,как можно получить такой результат
...
Рейтинг: 0 / 0
Oracle запрос
    #39735312
sanzhar333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanzhar333,
то есть такой результат
...
Рейтинг: 0 / 0
Oracle запрос
    #39735317
sanzhar333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanzhar333,статусы могут быть разные,нужно выбрать status1 по MIN(data1),и status2 по MAX(data1)
...
Рейтинг: 0 / 0
Oracle запрос
    #39735319
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Oracle запрос
    #39735327
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если даты в пределах одного баркода уникальны, то
Код: 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
Oracle запрос
    #39735391
sanzhar333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,спасибо за отклик,но, как писал выше в комментах., статусы могуть быть разные
...
Рейтинг: 0 / 0
Oracle запрос
    #39735392
sanzhar333
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,спасибо вам, как сяду на компьютер посмотрю
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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