Monday, July 29, 2013

How to create Function and Procedure in SQL Server 2008

EMI Calculation Formula

 E = P.R.(1+R)^n / (1+R)^n – 1)

SELECT QUERY
DECLARE @P AS INT
DECLARE @I AS FLOAT
DECLARE @R AS FLOAT
DECLARE @Y AS FLOAT
DECLARE @N AS FLOAT
DECLARE @A AS FLOAT
DECLARE @B AS FLOAT
DECLARE @C AS FLOAT
DECLARE @E AS FLOAT

SET @P = 1000000
SET @I = 10.5
SET @R = (@I/12)/100
SET @Y = 10
SET @N = (@Y * 12)
SET @A = POWER((1+@R),@N)
SET @B = (@A-1)
SET @C = (@A/@B)
SET @E = @P * @R * @C

SELECT ROUND(@E,2) AS EMI
SELECT ROUND((@E*@N),2) AS TOTAL

CREATE FUNCTION

CREATE FUNCTION EMI
(@P AS INT,
 @I AS FLOAT,
 @Y AS FLOAT)
RETURNS FLOAT
AS BEGIN
DECLARE @R AS FLOAT    
DECLARE @N AS FLOAT    
DECLARE @A AS FLOAT    
DECLARE @B AS FLOAT
DECLARE @C AS FLOAT    
DECLARE @E AS FLOAT

SET @R = (@I/12)/100
SET @N = (@Y * 12)
SET @A = POWER((1+@R),@N)    
SET @B = (@A-1)  
SET @C = (@A/@B)
SET @E = @P * @R * @C
RETURN ROUND(@E,2)
END

SELECT dbo.EMI(1000000,10.5,10)

CREATE PROCEDURE

CREATE PROCEDURE EMI
(@P AS INT,
 @I AS FLOAT,
 @Y AS FLOAT)
AS BEGIN
DECLARE @R AS FLOAT    
DECLARE @N AS FLOAT    
DECLARE @A AS FLOAT    
DECLARE @B AS FLOAT
DECLARE @C AS FLOAT    
DECLARE @E AS FLOAT

SET @R = (@I/12)/100
SET @N = (@Y * 12)
SET @A = POWER((1+@R),@N)    
SET @B = (@A-1)  
SET @C = (@A/@B)
SET @E = @P * @R * @C
SELECT ROUND(@E,2)
END

EXEC EMI '1000000','10.5','10'

No comments:

Post a Comment