-1
在这个网站上,我看到一个功能,那我想与PostgreSQL一起使用:功能对于PostgreSQL
https://raresql.com/2013/05/16/sql-server-excel-financial-functions-pmt/
下面是该查询:
CREATE FUNCTION UDF_PMT
(@InterestRate NUMERIC(18,8), --Rate is the interest rate per period.
@Nper INT, --Nper is the total number of payment
--periods in an annuity.
@Pv NUMERIC(18,4), --Pv is the present value, or the
--lump-sum amount that a series of
--future payments is worth right now.
--If pv is omitted, it is assumed to be
--0 (zero). PV must be entered as a
--negative number.
@Fv NUMERIC(18,4), --Fv is the future value, or the
--lump-sum amount that a series of
--future payments is worth right now.
--If pv is omitted, it is assumed to
--be 0 (zero). PV must be entered as a
--negative number.
@Type BIT --Type is the number 0 or 1 and
--indicates when payments are due.
--If type is omitted, it is assumed
--to be 0 which represents at the end
--of the period.
--If payments are due at the beginning
--of the period, type should be 1.
)
RETURNS NUMERIC(18,2) --float
AS
BEGIN
DECLARE @Value NUMERIC(18,2)
SELECT @Value = Case
WHEN @Type=0
THEN Convert(float,@InterestRate/100)
/(Power(Convert(float,(1 + @InterestRate/100)),@Nper)-1)
* -(@Pv*Power(Convert(float,(1 + @InterestRate/100)),@Nper)
[email protected])
WHEN @Type=1
THEN Convert(float,@InterestRate/100)/
(Power(Convert(float,(1 + @InterestRate/100)),@Nper)-1)
* -(@Pv*Power(Convert(float,(1 + @InterestRate/100)),@Nper)
[email protected])
/(1 + Convert(float,(@InterestRate/100)))
END
RETURN @Value
END
我改名为变量,而@
并改变了身体一点点,但不知何故,我不能让它正常运行。
是否有可能重写这个查询postgresql?你有什么想法如何做到这一点?谢谢
这里重要的是你想要的结果和样本数据。你能展示一些吗? –
@reds嗨,感谢您的帮助!例如'SELECT UDF_PMT(0.625,24,5000,0,0)'将返回'225' –
某些输出也可以在帖子中看到:https://raresql.com/2013/05/16/sql- server-excel-financial-functions-pmt/@reds谢谢 –