create FUNCTION [dbo].[RENTA_B_G] (@rok int, @plec int, @wiek int, @stopa float)
returns decimal (10,8)
BEGIN
RETURN (SELECT SUM(POWER(1/(1+@STOPA),X-@WIEK)*DBO.kPx(@rok,@plec,@wiek,X-@wiek)) FROM TTZ WHERE PLEC=@plec AND rok=@rok AND X>=@wiek)
END
create FUNCTION [dbo].[RENTA_B_D] (@rok int, @plec int, @wiek int, @stopa float)
returns decimal (10,8)
BEGIN
RETURN (SELECT SUM(POWER(1/(1+@STOPA),X-@WIEK)*DBO.kPx(@rok,@plec,@wiek,X-@wiek)) FROM TTZ WHERE PLEC=@plec AND rok=@rok AND X>@wiek)
END
SELECT dbo.RENTA_B_G (2010,2,23,0.05)
SELECT dbo.RENTA_B_D (2010,2,23,0.05)
SELECT dbo.RENTA_B_G (rok,2,23,0.05), dbo.RENTA_B_D (rok,2,23,0.05) FROM lata
ORDER BY 1
CREATE FUNCTION [dbo].[RENTA_T_G] (@rok int, @plec int, @wiek int, @stopa float, @termin int)
returns decimal (10,8)
BEGIN
RETURN (SELECT SUM(POWER(1/(1+@STOPA),X-@WIEK)*DBO.kPx(@rok,@plec,@wiek,X-@wiek)) FROM TTZ WHERE PLEC=@plec AND rok=@rok AND X>=@wiek AND X<=@WIEK+@TERMIN-1)
END
CREATE FUNCTION [dbo].[RENTA_T_D] (@rok int, @plec int, @wiek int, @stopa float, @termin int)
returns decimal (10,8)
BEGIN
RETURN (SELECT SUM(POWER(1/(1+@STOPA),X-@WIEK)*DBO.kPx(@rok,@plec,@wiek,X-@wiek)) FROM TTZ WHERE PLEC=@plec AND rok=@rok AND X>@wiek AND X<=@WIEK+@TERMIN)
END
SELECT ROK, dbo.RENTA_T_G (ROK,1,23,0.05,20), dbo.RENTA_T_D (ROK,1,23,0.05,20) FROM LATA
ORDER BY 1
UBEZPIECZEIA NA CAŁE ZYCIE
CREATE FUNCTION [dbo].[Px] (@rok int, @plec int,@wiek int, @ile int, @STOPA FLOAT)
returns FLOAT
BEGIN
DECLARE @LICZNIK FLOAT
DECLARE @MIANOWNIK FLOAT
SET @LICZNIK=(SELECT DBO.Ax(@rok, @plec,@wiek, @STOPA))
SET @MIANOWNIK=(SELECT dbo.RENTA_B_G(@rok, @plec ,@wiek , @STOPA))
RETURN @LICZNIK/@MIANOWNIK
END
SELECT dbo.Px(2010,1,23,0.05) , dbo.Ax(2010,1,23,0.05)
CREATE FUNCTION [dbo].[Px_n] (@rok int, @plec int,@wiek int, @STOPA FLOAT,@termin int)
returns FLOAT
BEGIN
DECLARE @LICZNIK FLOAT
DECLARE @MIANOWNIK FLOAT
SET @LICZNIK=(SELECT DBO.Ax_n(@rok, @plec,@wiek, @STOPA,@termin))
SET @MIANOWNIK=(SELECT dbo.RENTA_T_G(@rok, @plec ,@wiek , @STOPA,@termin))
RETURN @LICZNIK/@MIANOWNIK
END
SELECT dbo.Px_n(2010,1,23,0.05,20) , dbo.Ax_n(2010,1,23,0.05,20)