Das Problem ist ja, dass ein Gültig-Ab immer für alle vergangenen Daten gilt.
SQL baut also immer ein Resultset mit mehreren Sätzen zusammen obwohl nur einer benötigt wird.
Mittels "Order by .. desc fetch first 1 rows only" solltest du hier einschränken.

Die bessere Methode ist tatsächlich, ein "Gültig-Bis"-Feld einzuführen.
D.h., hier kann es rein technisch nur 1 Satz geben wenn das Feld auch Unique-Key ist.
Es kann ja eigentlich nicht mehrere Gültig-Bis geben die am selben Tag enden.