Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Запрос с датами, помогите, плиз  [new]
AlexSYSka
Member

Откуда: Восточнее Урала
Сообщений: 53
В общем есть таблица:
PlacesAutomates
("ID_PLACE" NUMBER NOT NULL,
"AUTOMATE" VARCHAR2(25 BYTE) NOT NULL,
"DATEIN" DATE)

В ней хранятся все перемещения автоматов...
Как получить список автоматов в текущем месте - ясно(хотя может есть более элегантное решение)
select pa.id_place,pa.automate, pa.datein from placesautomates pa, (select automate, max(datein) datein
from placesautomates where datein<=:Datein group by automate) temp
where temp.datein=pa.datein and pa.automate=temp.automate and id_place=1;

Вопрос: как получить список автоматов, которые есть сейчас и были еще два месяца назад, но те, что были позднее - они не нужны....
13 мар 09, 14:59    [6923663]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датами, помогите, плиз  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Ну с первым как-то так:
select * from
(
select AUTOMATE, max(id_place) keep (dense_rank last order by DATEIN) id_place, max(DATEIN) DATEIN
from PlacesAutomates
group by AUTOMATE
)
where id_place = 1
А что касается второго - нужны уточнения. Если он был два месяца назад в 1ом, потом во 2ом, а сейчас снова в 1ом, такой мы должны найти?
13 мар 09, 15:11    [6923817]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датами, помогите, плиз  [new]
AlexSYSka
Member

Откуда: Восточнее Урала
Сообщений: 53
Как бы вопрос не в том где стоит, с этим ясно. Вопрос в том, что стоит в Id_place=1 сейчас и стояло в течении прошлых двух месяцев...
13 мар 09, 18:15    [6925488]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датами, помогите, плиз  [new]
SQL*Plus
Member

Откуда: Россия, Москва
Сообщений: 8131
Полезная ссылка
13 мар 09, 18:29    [6925582]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датами, помогите, плиз  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
AlexSYSka
стоит в Id_place=1 сейчас и стояло в течении прошлых двух месяцев...
select AUTOMATE, id_place, datein, date_out
from
(
select PlacesAutomates.*, lead(datein) over (partition by AUTOMATE order by datein) date_out
from PlacesAutomates
) t
where id_place = 1
and datein <= add_months(sysdate, -2) and date_out is null
PS: Я полагаю, что войти в ту же воду, тьфу - в то же место, дважды автомат не может :)
16 мар 09, 10:27    [6929920]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датами, помогите, плиз  [new]
orawish
Member

Откуда: Гадюкино-2 (City)
Сообщений: 15487
AlexSYSka
В общем есть таблица:
PlacesAutomates
("ID_PLACE" NUMBER NOT NULL,
"AUTOMATE" VARCHAR2(25 BYTE) NOT NULL,
"DATEIN" DATE)

В ней хранятся все перемещения автоматов...
Как получить список автоматов в текущем месте - ясно(хотя может есть более элегантное решение)
select pa.id_place,pa.automate, pa.datein from placesautomates pa, (select automate, max(datein) datein
from placesautomates where datein<=:Datein group by automate
) temp
where temp.datein=pa.datein and pa.automate=temp.automate and id_place=1;

Вопрос: как получить список автоматов, которые есть сейчас и были еще два месяца назад, но те, что были позднее - они не нужны....


красное having max(datein) < add_months(sysdate,-2) )
16 мар 09, 17:14    [6933876]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить