使用标量值函数与已声明变量,以通过SELECT语句中的多个记录运行



美好的一天,

我有一个标量值函数,我用来确定SQL Management Studio中的付款价值(Excel中的PMT功能)。我导入以下C#函数:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class FinancialFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction]
    public static SqlDouble PMT(double r, int nper, double pv, double fv, int type)
    {
        double pmt;
        if (nper == 0)
            pmt = 0;
        else if (r == 0)
            pmt = (fv - pv) / nper;
        else
            pmt = r / (Math.Pow(1 + r, nper) - 1)
                * -(pv * Math.Pow(1 + r, nper) + fv);
        if (type == 1) pmt /= (1 + r);
        return pmt;
    }

然后调用该函数如下所示:

DECLARE @LoanValue decimal(38,20)
DECLARE @APR decimal(20,15)
DECLARE @FullTerm int
SET @LoanValue     = VALUE of each individual loan
SET @APR           = INTEREST RATE for each individual loan
SET @FullTerm      = TOTAL TENURE for each loan
DECLARE @PMT decimal(38,20)
SET @PMT = dbo.PMT(@APR/12.0, @FullTerm, @LoanValue, 0, 0)
SELECT @PMT AS PMT

如何编写脚本以通过具有不同价值,利率和持续时间的多个贷款运行?

您的协助将不胜感激。

谢谢。

创建一个具有您需要的所有值的表。

  SELECT LoanValue, APR, FullTerm, fv, type , 
         dbo.PMT(APR/12.0, FullTerm, LoanValue, fv, type) as result
  FROM YourTable

最新更新