Есть таблица прибытия автомобилей
key key_auto arrival ....
1 1 01.01.07 ....
2 2 10.01.07 ....
3 1 02.02.07 ....
4 1 04.02.07 ....
5 2 15.02.07 ....
необходимо получить результат за месяц:
key_auto arrival arrival_last ....
1 02.02.07 01.01.07
1 04.02.07 02.01.07
2 15.02.07 10.01.07
пытаюсь сделать это следующим образом
select a.key_auto, a.arraival, alast.arrival, alast....
from auto a,
auto alast
where
a.arrival between to_date('01.02.2007') and to_date('28.02.2007') and
alast.key = (select max(tmp.key)
from auto tmp
where tmp.arrival<a.arrival and tmp.key_auto=a.key_auto
)
Проблема в том, что поле arrival (прибытие) редактируемое, при этом связка max(tmp.key) не работает, так как key может быть и max, а вот arrival нет. Делать через max(arrival) тоже не катит, т.к. авто может быть несколько раз за день, и подзапрос будет возвращать несколько строк, что приведет к ошибке. А если авто первый раз прибыл, то в текущему запросу я его и вовсе не увижу. Как поступить в такой ситуации?