科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在SQL Server中计算金融数值(1)

在SQL Server中计算金融数值(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SQL Server 2000和2005版并没有提供很多金融函数,但是有很多金融计算公式的来源,在这篇技巧中,我将展示净现值(present value (PV))和未来值(future value (FV))函数,它们都是标量的用户自定义函数(UDF)。 Yq}gRs;q wzaBiN O4

作者:赛迪网技术社区 来源:赛迪网技术社区 2007年8月26日

关键字: 金融 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件
SQL Server 2000和2005版并没有提供很多金融函数,但是有很多金融计算公式的来源,在这篇技巧中,我将展示净现值(present value (PV))和未来值(future value (FV))函数,它们都是标量的用户自定义函数(UDF)。 Yq}gRs;q  
wzaBiN O4  
以下是PV的基本逻辑:给定一个未来的值,一个利率和复利计算时期,PV的计算可以确定现在投资的价值,其公式为: %WRxeFc&{R  
>'b'`=  
PV = FV [ 1 / (1 + i)n ] ? 1=FNR<  
oVS`V6(  
列表A展示了将其转换为一个SQL Server的UDF并不是一件很困难的事。 8$j_tlwD  
QDHXH ~<  
-- ================================================ &dAk@@c)P  
-- Template generated from Template Explorer using: ``y :ShP  
-- Create Scalar Function (New Menu).SQL R&7"ph7i  
-- ST T6/vc\3  
-- Use the Specify Values for Template Parameters K.nm~<Y  
-- command (Ctrl-Shift-M) to fill in the parameter  !I0 9<j  
-- values below. bi}:#mI1  
-- a ;!S`Bq  
-- This block of comments will not be included in t2  kK[]  
-- the definition of the function. AK X`f{  
-- ================================================ c)"f  
SET ANSI_NULLS ON Ak}k5RI  
GO Uq v5  
SET QUOTED_IDENTIFIER ON +z F>  
GO jOru_6d #l  
-- ============================================= _ZI7 I?Kt  
-- Author:        Arthur Fuller  vJG+l1C  
-- Create date: 22-Aug-2006 VgEY0a[+c=  
-- Description:  Returns Present Value oy%P1BK  
-- Example: BPQ r+Zz&  
--      @fv = 150000 (dollars) Nh-ET?O  
--      @i  = 6% (per annum) 1K?'$]v=  
--      @p  = 5 (years) 5"`;nR~  
--  SELECT DBO.PV_fn( 100000, .06, 5) C\v;T#c  
-- returns 150000 s"4;~xSIc8  
-- ============================================= qZf$+Aq  
CREATE FUNCTION PV_fn /5eR 0  
( ,/EN2Uoy  
      -- Add the parameters for the function here W0&Tx1\m#  
    @fv float,      -- future value desired kMhG,8  
    @i  decimal,    -- interest rate EPRJ irg  
    @p  int        -- number of compounding periods kBCr,lHU:m  
) }]F*F0v  
RETURNS money |J]d-{ jQ  
AS <bN%|dl  
BEGIN 8<8  
      -- Declare the return variable here A>c`KLM  
      DECLARE @Result money 1]u;~GU  
      -- Add the T-SQL statements to compute the return value here % Z OT  
      SELECT @Result = @fv *(1/Power((1+@i),@p)) |U+ oA  
      -- Return the result of the function nWJP.~5?  
      RETURN @Result u!hHf9W*  
END 9~Z3,Kx0$  
GO t)o[V/-Lg  
^kL0%g  
与PV相反的就是FV,它的含义是:给定现在的货币量、利率和复利计算时期,您的钱在时期结束时的价值。 /~6t]$b'  
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章