select
viaggio.viaggio_id,
viaggio.viaggio_anno,
viaggio.viaggio_data,
(select ordine.ritiro
from ordine
where ordine.id_viaggio = viaggio.viaggio_id
and not exists (
select 1
from ordine o2
where o2.id_viaggio = ordine.id_viaggio
and o2.sequenza < ordine.sequenza)
) ritiro,
(select ordine.consegna
from ordine
where ordine.id_viaggio = viaggio.viaggio_id
and not exists (
select 1
from ordine o2
where o2.id_viaggio = ordine.id_viaggio
and o2.sequenza > ordine.sequenza)
) consegna
from viaggio
perdonami Joe Taras, ma io avrei dei dubbi su quanto da te postato.
se non inserisci l'ordine Ascendente/Discendente potresti non prendere il primo valore ritiro/consegna!