# SQL Server PV function

PV

Updated: 5 August 2010
Use PV to calculate the present value of an investment.
Syntax
SELECT [westclintech].[wct].[PV] (
<@Rate, float,>
,<@Nper, float,>
,<@Pmt, float,>
,<@FV, float,>
,<@Pay_type, int,>)

Arguments
@Rate
the interest rate per period. @Rate is an expression of type float or of a type that can be implicitly converted to float.
@Nper
the total number of periods in the annuity to be calculated. @Nper is an expression of type float or of a type that can be implicitly converted to float.
@Pmt
the payment made each period. @Pmt cannot change over the life of the annuity. @Pmt is an expression of type float or of a type that can be implicitly converted to float.
@FV
the future value at the end of the annuity. @FV is an expression of type float or of a type that can be implicitly converted to float.
@Pay_type
the number 0 or 1 and indicates when payments are due. @Pay_type is an expression of type int or of a type that can be implicitly converted to int. If @Pay_type is NULL it is assumed to be 0.
 Set @Pay_type equal to If payments are due 0 At the end of a period 1 At the beginning of a period

Return Type
float
Remarks
·         PV performs the following calculation:

PV = ((@Pmt * k) / @Rate) - @Fv
PV = PV / ((1 + @Rate) ^ @Nper)
PV = PV - (@Pmt * k) / @Rate
If @Pay_type = 0 Then k = 1 Else k = 1 + @Rate
Examples

SELECT wct.PV(0.08/12e+00
,20*12
,500
,0
,0)
Here is the result set
----------------------

-59777.1458511878