Если заменить вложенный запрос на проверку факта существования записей с бОльшим значением даты из заданного диапазона, то все решается достаточно просто
X++:
MyTable myTable, myTable2;
;
select myTable.TransDate, myTable.Key, myTable.Value
from myTable
where myTable.TransDate <= getdate()
notexists join myTable2
where
myTable2.RecId != myTable.RecId
&& myTable2.key == myTable.key
&& myTable2.TransDate > myTable.TransDate
&& myTable2.TransDate <= getdate()
Только здесь нужен дополнительный идетнификатор, позволяющий однозначно определить запись. В данном случае, это RecId.