powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите реализовать запрос на PL\SQL!
31 сообщений из 31, показаны все 2 страниц
Помогите реализовать запрос на PL\SQL!
    #35695590
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица в фиксируются различные работы, в каждой строке есть дата и время начала и дата и время окончания.. Между временем окончания текущей и началом следующей есть промежутки. Подскажите пожалуйста как их высчитать. Сложности в том что данные над которыми надо проводить операции находятся в разных строках и столбцах. Может кто с таким сталкивался.. буду очень благодарен за помощь.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695635
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Provider...

Первое что в голову пришло, соедините ету табличку саму с собой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select min(t2.date_start) - t1.data_end
from 
    table t1, table t2 
where 
   t1.fk=t2.fk 
   and t2.date_start > t1.data_end
group by t1.data_end
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695659
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как насчет того что дата окончания и дата начала которые необходима отнять находятся в соседних СТРОКАХ ?
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695664
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Providerа как насчет того что дата окончания и дата начала которые необходима отнять находятся в соседних СТРОКАХ ?

а разве соединением "from table t1, table t2 " мы не поместили их в одну и туже "виртуальную" строку ????
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695667
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоесть от data_end одной строки надо отнять data_start следующей строки
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695673
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Providerтоесть от data_end одной строки надо отнять data_start следующей строки

можно и так , но результат окажется отрицательный ... в смысле с минусом. нужно будет ещё и знак менять.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695708
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KRED, Вы немного неправильно меня поняли. Есть таблица:


--------------------------------------------------------------------------
I ..................I data_start I data_end I ............. I
--------------------------------------------------------------------------
I...................I 01.01.2008 13:45:12 I 01.01.2008 13:46:20 I ..............I
--------------------------------------------------------------------------
I...................I 01.01.2008 13:46:50 I 01.01.2008 13:47:35 I ..............I
--------------------------------------------------------------------------
.......................................................................

Вот мне надо по всем записям вычислить промежуток между data_end и data_start следующей строки.
(в примере это - 01.01.2008 13:46:20 - 01.01.2008 13:46:50 = 20сек) По преобразованию можно не писать, подскажите как организовать саму операцию.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695725
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выше в примере ошибся, .... =30сек
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695760
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProviderKRED, Вы немного неправильно меня поняли. Есть таблица:


--------------------------------------------------------------------------
I ..................I data_start I data_end I ............. I
--------------------------------------------------------------------------
I...................I 01.01.2008 13:45:12 I 01.01.2008 13:46:20 I ..............I
--------------------------------------------------------------------------
I...................I 01.01.2008 13:46:50 I 01.01.2008 13:47:35 I ..............I
--------------------------------------------------------------------------
.......................................................................

Вот мне надо по всем записям вычислить промежуток между data_end и data_start следующей строки.
(в примере это - 01.01.2008 13:46:20 - 01.01.2008 13:46:50 = 20сек) По преобразованию можно не писать, подскажите как организовать саму операцию.

Вы наверное издеваетесь ??? я же вам дал пример использования !!! вы не въехали в тему и наежаете на меня что я не понял !!! Покажите пожалуста почему мой вариант решения НЕ РАБОТАЕТ !!!!
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695805
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на "min(t2.date_start) - t1.data_end" выдает ошибку "ORA-00937: not a single-group group function"
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695854
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Provider,

какой скл ты подсовываеш ??? покажи точный.

И Постгрес вообщето не даёт ошибок "ORA" :-)
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695858
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Providerна "min(t2.date_start - t1.data_end)" выдает ошибку "ORA-00937: not a single-group group function"а подумать
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695867
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDИ Постгрес вообщето не даёт ошибок "ORA" :-)этопять
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695876
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assaProviderна "min(t2.date_start - t1.data_end)" выдает ошибку "ORA-00937: not a single-group group function"а подумать

net ... min(t2.date_start - t1.data_end) нельзя ! нужно именно самую маленькую "t2.date_start" после t1.data_end
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695877
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDProvider...

Первое что в голову пришло, соедините ету табличку саму с собой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select min(t2.date_start) - t1.data_end
from 
    table t1, table t2 
where 
   t1.fk=t2.fk 
   and t2.date_start > t1.data_end
group by t1.data_end
гм. а кореллированным подзапросом с LIMIT 1 оптимизатору будет не проще?
болванки тут:
http://sql.ru/forum/actualthread.aspx?tid=619045
(слегка почистить от лишнего - будет то, что нужно)
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695881
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assa,

я не занимался оптимизацией его .... скорее нужно чем можно :-)
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695886
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDassaProviderна "min(t2.date_start - t1.data_end)" выдает ошибку "ORA-00937: not a single-group group function"а подумать

net ... min(t2.date_start - t1.data_end) нельзя ! нужно именно самую маленькую "t2.date_start" после t1.data_endчото сёня спю. не вчитывается.
да, вы правы.

там, у чела, групбай по t1.data_end не указан, чай.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35695896
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
assa,

авторгм. а кореллированным подзапросом с LIMIT 1 оптимизатору будет не проще?

пожет тот постгрес (который ORA кидает) сам разрулит такую ситуацию ???
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35696128
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KREDпожет тот постгрес (который ORA кидает) сам разрулит такую ситуацию ???могабыть пыжовый "энтерпрайс" уже дошел по части эмуляции оракла до выдачи ORA-льных сообщений?
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35696534
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите в тему: "Помогите реализовать запрос на PL\SQL" я просил помочь по PL/SQL. Всем спасибо за советы. Я сделал все по-другому - с помощью функции LEAD. Работает замечательно.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35696655
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProviderПосмотрите в тему: "Помогите реализовать запрос на PL\SQL" я просил помочь по PL/SQL. Всем спасибо за советы. Я сделал все по-другому - с помощью функции LEAD. Работает замечательно.

Покажи нам где в постгрестовой доке описании этой функции !

Очень хочется почитать.

Если быть ещо более точным ссылку с сайта www.postgresql.org приведи пожалуста.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35697521
гыгыгы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Providerна "min(t2.date_start) - t1.data_end" выдает ошибку "ORA-00937 : not a single-group group function"
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35699210
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какой postgre? Я же написал - PL/SQL а не postgre SQL! Это разные вещи! А написал в этой ветки потому как ветки по PL/SQL просто нет... Вы че все читать не умеете?
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35699217
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот описание - http://www.adp-gmbh.ch/ora/sql/analytical/lag.html
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35699241
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KRED ты просил весь запрос сбросить? Вот -

select
w.fullname,
wt.descr type,
pr.name reason,
count(1) locations,
sum(od.packs) packs,
round(sum(od.packs)/count(1),2) packs_in_cells,
to_char(trunc(Sysdate) + sum(od.work_time)/(24 * 60 * 60), 'HH24:MI:SS') sum_time,
to_char(trunc(Sysdate) + (sum(od.work_time)/count(1))/(24 * 60 * 60), 'HH24:MI:SS') time_one_loc,
to_char(trunc(Sysdate) + (
case
when sum(od.packs)=0
then 0
else (sum(od.work_time)/sum(od.packs))
end
)/(24 * 60 * 60), 'HH24:MI:SS') time_one_pack
from
wms.oldpick_detail od, wms.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.worker_id > 0
-- and ol.reason = 'order_picking'
and od.complete = 't'
and w.id=od.worker_id
and wt.name=od.opcode
and not (
od.opcode = 'ABSENCE'
or (ol.reason = 'order_picking'
and od.opcode = 'PICK')
)
-- and od.opcode in ('FROM_CNT', 'FROM_PAL')
and od.pick_id=ol.id
and pr.id=ol.reason
group by (w.fullname, wt.descr, pr.name)

union

select
w.fullname,
'Перемещение отобранной паллеты в ЕТ%' type,
pr.name reason,
count(1) locations,
sum(od.packs) packs,
round(sum(od.packs)/count(1),2) packs_in_cells,
to_char(trunc(Sysdate) + sum(od.work_time)/(24 * 60 * 60), 'HH24:MI:SS') sum_time,
to_char(trunc(Sysdate) + (sum(od.work_time)/count(1))/(24 * 60 * 60), 'HH24:MI:SS') time_one_loc,
to_char(trunc(Sysdate) + (
case
when sum(od.packs)=0
then 0
else (sum(od.work_time)/sum(od.packs))
end
)/(24 * 60 * 60), 'HH24:MI:SS') time_one_pack
from
wms_archive.oldpick_detail od, wms_archive.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.worker_id > 0
and ol.reason = 'order_picking'
and od.opcode = 'PICK'
and od.complete = 't'
and od.order_id = 0
and w.id = od.worker_id
and wt.name = od.opcode
and od.pick_id = ol.id
and pr.id = ol.reason
group by (w.fullname, wt.descr, pr.name)

union

select
w.fullname,
'Перемещение монопаллеты в Е%' type,
pr.name reason,
count(1) locations,
sum(od.packs) packs,
round(sum(od.packs)/count(1),2) packs_in_cells,
to_char(trunc(Sysdate) + sum(od.work_time)/(24 * 60 * 60), 'HH24:MI:SS') sum_time,
to_char(trunc(Sysdate) + (sum(od.work_time)/count(1))/(24 * 60 * 60), 'HH24:MI:SS') time_one_loc,
to_char(trunc(Sysdate) + (
case
when sum(od.packs)=0
then 0
else (sum(od.work_time)/sum(od.packs))
end
)/(24 * 60 * 60), 'HH24:MI:SS') time_one_pack
from
wms_archive.oldpick_detail od, wms_archive.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.worker_id > 0
and ol.reason = 'order_picking'
and od.opcode = 'PICK'
and od.complete = 't'
and od.order_id > 0
and w.id = od.worker_id
and wt.name = od.opcode
and od.pick_id = ol.id
and pr.id = ol.reason
group by (w.fullname, wt.descr, pr.name)

union

select
w.fullname,
'Перемещение S->S%' type,
pr.name reason,
count(1) locations,
sum(od.packs) packs,
round(sum(od.packs)/count(1),2) packs_in_cells,
-- lead (od.start_date,1, null) over (order by od.pick_id) d,
case when lead (od.pick_id,1) over (order by od.pick_id) = od.pick_id then
to_char(trunc(Sysdate) + (((lead (od.start_date,1) over (order by od.pick_id, od.start_date))-od.finish_date)), 'HH24:MI:SS')
else
to_char(trunc(Sysdate) + 0, 'HH24:MI:SS')
end sum_time,
to_char(trunc(Sysdate) + (sum(od.work_time)/count(1))/(24 * 60 * 60), 'HH24:MI:SS') time_one_loc,
to_char(trunc(Sysdate) + (
case
when sum(od.packs)=0
then 0
else (sum(od.work_time)/sum(od.packs))
end
)/(24 * 60 * 60), 'HH24:MI:SS') time_one_pack

from
wms_archive.oldpick_detail od, wms_archive.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
and od.worker_id > 0
and ol.reason = 'order_picking'
-- and od.opcode = 'PICK'
and od.complete = 't'
and (wt.name = 'FROM_CNT' or wt.name = 'FROM_PAL')
and od.order_id > 0
and w.id = od.worker_id
and wt.name = od.opcode
and od.pick_id = ol.id
and pr.id = ol.reason
group by w.fullname, wt.descr, pr.name, od.pick_id, od.start_date, od.finish_date

order by fullname
;
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35699442
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProviderКакой postgre? Я же написал - PL/SQL а не postgre SQL! Это разные вещи! А написал в этой ветки потому как ветки по PL/SQL просто нет... Вы че все читать не умеете?тут не смотрели?
http://sql.ru/forum/actualtopics.aspx?bid=3
или "вы че, читать не умеете?"

зы пл-скл (ПроцедурныйЛенгвидж-СКЛ) есть и в пг, но пг не выдает "ора", и в нем нет пока аналитич. функций.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35699457
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProviderKRED ты просил весь запрос сбросить? Вот -

Код: plaintext
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
select 
     w.fullname,
     wt.descr type,
     pr.name reason,
     count( 1 ) locations,
     sum(od.packs) packs,
     round(sum(od.packs)/count( 1 ), 2 ) packs_in_cells,
     to_char(trunc(Sysdate) + sum(od.work_time)/( 24  *  60  *  60 ), 'HH24:MI:SS') sum_time,
     to_char(trunc(Sysdate) + (sum(od.work_time)/count( 1 ))/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_loc,
     to_char(trunc(Sysdate) + (
     case 
          when sum(od.packs)= 0  
          then  0  
          else  (sum(od.work_time)/sum(od.packs))
     end
     )/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_pack
from 
     wms.oldpick_detail od, wms.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS') 
      and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
      and od.worker_id >  0 
--      and ol.reason = 'order_picking'
      and od.complete = 't'
      and w.id=od.worker_id
      and wt.name=od.opcode
      and not (
          od.opcode = 'ABSENCE'
          or (ol.reason = 'order_picking'
              and od.opcode = 'PICK')
              )
--      and od.opcode in ('FROM_CNT', 'FROM_PAL')
      and od.pick_id=ol.id
      and pr.id=ol.reason
group by (w.fullname,  wt.descr,  pr.name)

union

select 
     w.fullname,
     'Перемещение отобранной паллеты в ЕТ%' type,
     pr.name reason,
     count( 1 ) locations,
     sum(od.packs) packs,
     round(sum(od.packs)/count( 1 ), 2 ) packs_in_cells,
     to_char(trunc(Sysdate) + sum(od.work_time)/( 24  *  60  *  60 ), 'HH24:MI:SS') sum_time,
     to_char(trunc(Sysdate) + (sum(od.work_time)/count( 1 ))/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_loc,
     to_char(trunc(Sysdate) + (
     case 
          when sum(od.packs)= 0  
          then  0  
          else  (sum(od.work_time)/sum(od.packs))
     end
     )/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_pack
from 
     wms_archive.oldpick_detail od, wms_archive.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS') 
      and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
      and od.worker_id >  0 
      and ol.reason = 'order_picking'
      and od.opcode = 'PICK'
      and od.complete = 't'
      and od.order_id =  0 
      and w.id = od.worker_id
      and wt.name = od.opcode
      and od.pick_id = ol.id
      and pr.id = ol.reason
group by (w.fullname,  wt.descr,  pr.name)

union

select 
     w.fullname,
     'Перемещение монопаллеты в Е%' type,
     pr.name reason,
     count( 1 ) locations,
     sum(od.packs) packs,
     round(sum(od.packs)/count( 1 ), 2 ) packs_in_cells,
     to_char(trunc(Sysdate) + sum(od.work_time)/( 24  *  60  *  60 ), 'HH24:MI:SS') sum_time,
     to_char(trunc(Sysdate) + (sum(od.work_time)/count( 1 ))/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_loc,
     to_char(trunc(Sysdate) + (
     case 
          when sum(od.packs)= 0  
          then  0  
          else  (sum(od.work_time)/sum(od.packs))
     end
     )/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_pack
from 
     wms_archive.oldpick_detail od, wms_archive.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS') 
      and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
      and od.worker_id >  0 
      and ol.reason = 'order_picking'
      and od.opcode = 'PICK'
      and od.complete = 't'
      and od.order_id >  0 
      and w.id = od.worker_id
      and wt.name = od.opcode
      and od.pick_id = ol.id
      and pr.id = ol.reason
group by (w.fullname,  wt.descr,  pr.name)

union

select
    w.fullname,
    'Перемещение S->S%' type,
    pr.name reason,
    count( 1 ) locations,
    sum(od.packs) packs,
    round(sum(od.packs)/count( 1 ), 2 ) packs_in_cells,
 --   lead (od.start_date,1, null) over (order by od.pick_id) d,
    case when lead (od.pick_id, 1 ) over (order by od.pick_id) = od.pick_id then
    to_char(trunc(Sysdate) + (((lead (od.start_date, 1 ) over (order by od.pick_id, od.start_date))-od.finish_date)), 'HH24:MI:SS')
    else 
    to_char(trunc(Sysdate) +  0 , 'HH24:MI:SS')
    end sum_time,
    to_char(trunc(Sysdate) + (sum(od.work_time)/count( 1 ))/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_loc,
    to_char(trunc(Sysdate) + (
    case
         when sum(od.packs)= 0 
         then  0 
         else  (sum(od.work_time)/sum(od.packs))
    end
    )/( 24  *  60  *  60 ), 'HH24:MI:SS') time_one_pack

from
    wms_archive.oldpick_detail od, wms_archive.oldpick ol, wms.pick_reason pr, wms.worker w, wms.work_type wt
where od.deleted > to_date('04.12.2008 09:00:00', 'DD.MM.YYYY HH24:MI:SS')
     and od.deleted < to_date('04.12.2008 21:00:00', 'DD.MM.YYYY HH24:MI:SS')
     and od.worker_id >  0 
     and ol.reason = 'order_picking'
  --   and od.opcode = 'PICK'
     and od.complete = 't'
     and (wt.name = 'FROM_CNT' or wt.name = 'FROM_PAL')
     and od.order_id >  0 
     and w.id = od.worker_id
     and wt.name = od.opcode
     and od.pick_id = ol.id
     and pr.id = ol.reason
group by w.fullname,  wt.descr,  pr.name, od.pick_id, od.start_date, od.finish_date

order by fullname
;

ps вы еще и писать (теги ставить) не умеете
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35699545
Provider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
assa
ps вы еще и писать (теги ставить) не умеете

Нет, не умел, я новичок на форуме, что тут такого. Может и не в ту ветку написал - виноват. Вообще я использую PL/SQL Developer.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35699928
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Providerassa
ps вы еще и писать (теги ставить) не умеете

Нет, не умел, я новичок на форуме, что тут такого. Может и не в ту ветку написал - виноват. Вообще я использую PL/SQL Developer.ну вот и разобрались.
бывает.

ЗЫ. а в пятницу людям бывает необходимо и пошутить. т.ч. тоже все понятно.
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35700267
KRED
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Providerassa
ps вы еще и писать (теги ставить) не умеете

Нет, не умел, я новичок на форуме, что тут такого. Может и не в ту ветку написал - виноват. Вообще я использую PL/SQL Developer.

А дерзить уже научились ?? может не тому учились ?
...
Рейтинг: 0 / 0
Помогите реализовать запрос на PL\SQL!
    #35709530
-=Wanderer=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что-то вроде такого:

select
it.start_date, it.end_date,
(select
min(start_date)
from interest_table
where
1=1--здесь условия
and start_date>=it.end_date) time_dif
from
interest_table it

в таком запросе выберутся записи и промежутки между текущей и последующей операцией
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите реализовать запрос на PL\SQL!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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