wenn das leben normal laufen würde hätte ich es so gelöst

with blabla as (
SELECT nummer,num2, vkdat, max(UMZST) as aaa FROM table
group by nummer,num2, vkdat
order by nummer,num2, vkdat )

select top 1 aaa from test where nummer=parmnummer and num2=parmnum2 and vkdat <= parmvkdat
order by nummer desc,num2 desc , vkdat desc

und fertig wär die lutzi . Aber das Leben ist nicht normal .. das ganze muss in views und zwar alles getrennt . cte und first top soll nicht verwendet werden