Sql 使用带有声明变量的标量值函数在select语句中的多个记录中运行
你好 我有一个标量值函数,用于确定SQL Management Studio中Excel中的支付值PMT函数。我导入了以下C函数:Sql 使用带有声明变量的标量值函数在select语句中的多个记录中运行,sql,sql-server,sql-function,Sql,Sql Server,Sql Function,你好 我有一个标量值函数,用于确定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.Sq
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;
}
然后在SQL中按如下方式调用该函数:
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
我不太明白。如果你的意思是如何使用这是一个SELECT语句?然后像其他函数一样使用它。从表YT中选择{Other Columns}、dbo.PMTYT.APR、YT.FullTerm、YT.LoanValue、0,0作为PMT…谢谢@Larnu。我坐在这台笔记本电脑前太久了,以至于忘记了基本的脚本编写。先生,感谢您的帮助,并向我指出明显的问题。谢谢您,胡安,非常感谢您对这么琐碎的事情的帮助。