20-03-2024, Saat: 12:58
Selamlar
Belki birinin ihtiyacı olur diye buraya ekliyorum
Buda Tablo Şeklinde Kullanıma Örnek
Belki birinin ihtiyacı olur diye buraya ekliyorum
CREATE FUNCTION [dbo].[IskontoHesapla] (@Tutar Float = 0, @Oran1 Float = 0, @Oran2 Float = 0, @Oran3 Float = 0, @Oran4 Float = 0, @Oran5 Float = 0) RETURNS @FnTable table ( Tutar Float, IskontoTutar Float, NetTutar Float, IskontoOran Float) AS BEGIN Declare @NetTutar Float, @IskontoTutar Float, @IskontoOran Float Set @NetTutar = 0 Set @IskontoTutar = 0 Set @IskontoOran = 0 Set @NetTutar = @Tutar * Case When @Oran1 > 0 Then (1-(@Oran1/100)) Else 1 end * Case When @Oran2 > 0 Then (1-(@Oran2/100)) Else 1 end * Case When @Oran3 > 0 Then (1-(@Oran3/100)) Else 1 end * Case When @Oran4 > 0 Then (1-(@Oran4/100)) Else 1 end * Case When @Oran5 > 0 Then (1-(@Oran5/100)) Else 1 end Set @IskontoOran = 100 - (Case When @Oran1 > 0 Then (1-(@Oran1/100)) Else 1 End) * (Case When @Oran2 > 0 Then (1-(@Oran2/100)) Else 1 End) * (Case When @Oran3 > 0 Then (1-(@Oran3/100)) Else 1 End) * (Case When @Oran4 > 0 Then (1-(@Oran4/100)) Else 1 End) * (Case When @Oran5 > 0 Then (1-(@Oran5/100)) Else 1 End) * 100 Set @IskontoTutar = @Tutar - @NetTutar Insert Into @FnTable (Tutar, IskontoTutar, NetTutar, IskontoOran) Values (@Tutar, @IskontoTutar, @NetTutar, @IskontoOran) return End
Select * from IskontoHesapla(175, 50, 30, 5, 0, 0)
Buda Tablo Şeklinde Kullanıma Örnek
Declare @T Table (Tutar Float, O1 Float, O2 Float, O3 Float, O4 Float, O5 Float) Insert Into @T (Tutar, O1, O2, O3, O4, O5) Values (175, 50, 50, 40, 0, 0) Insert Into @T (Tutar, O1, O2, O3, O4, O5) Values (175, 10, 0, 0, 0, 0) Insert Into @T (Tutar, O1, O2, O3, O4, O5) Values (175, 20, 30, 40, 0, 0) Insert Into @T (Tutar, O1, O2, O3, O4, O5) Values (175, 15, 20, 0, 0, 0) Insert Into @T (Tutar, O1, O2, O3, O4, O5) Values (175, 15, 20, 0, 20, 0) Select * From @T t Outer Apply (Select * From IskontoHesapla(t.Tutar, t.O1, t.O2, t.O3, t.O4, t.O5)) i