Ik denk dat het canonieke antwoord op deze vraag als volgt is
with AllData as
(
select ... from ...
where ...
)
select * from allData ad1
inner join
(
select pk1, pk2, pk<n>, max(MaxThing) MaxVal
from AllData
group by pk1, pk2, pk<n>
) as ad2
on (ad1.pk1=ad2.pk1 and ad1.pk2=ad2.pk2 and ad1.pk<n>=ad2.pk<n>
and ad1.MaxThing=ad2.MaxVal)
In jouw geval cst_recno
is de PK en inv_trx_date
is het MaxThing