Trotzdem geht das leider an dem Wunsch vorbei, dass ich genau 1 Satz haben will, aber SQL mir halt manchmal mehrere Sätze liefert.
Da hilft auch gerade kein between oder ähnliches, sondern leider nur so komplizierte Konstrukte mit Subselect u.ä. (CTE's sind ja auch nichts anderes) und der Optimizer stößt da immer wieder auf Probleme, die ich da leider nicht nachvollziehen kann (trotz vorgschlagener Zugriffswege immer noch Tablescan).

SQL ist da halt nicht immer von Vorteil, da RPG/LE da einfach kürzer ist.
Die Rahmenbedingung bei Gültigkeit ist häufig so:

setll (Key: Datum) MyFile;
reade (Key) MyFile;
if not %found();
setll (Key: Datum) MyFile;
readpe (Key) MyFile;
endif;
if not %found();
// wirklich ungültig.
endif;

Also nimm den 1. gültigen, wenn nicht da, nimm den letzten gültigen.

Dies in einem Resultset mit SQL gestaltet sich als ziemlich schwierig (natülich nicht unlösbar) und mitunter wenig performant.