В этом случае вам не нужно конвертировать курсор / цикл, поскольку он просматривает только первую запись.
create function f_genel_iskonto (@p_ID_MUSTERI_SIRKET int, @p_BILGI_TIP int)
returns int
as
begin
declare @result int
SELECT top 1
@result = case @p_BILGI_TIP
when 1 then an.mt_iskonto_oran
when 2 then an.aktif
when 3 then an.id_anlasma
end
FROM lu_anlasma an
WHERE an.id_musteri_sirket = @p_ID_MUSTERI_SIRKET AND an.id_durum = 9
AND (current_timestamp BETWEEN an.baslangic AND an.bitis)
ORDER BY an.baslangic DESC
return @result
end
И вам, вероятно, потребуется настроить сравнение дат, чтобы сделать то, что вы хотите.