用户定义的函数,用于根据用户提供的值计算两列之间的差异

时间:2013-03-17 06:39:14

标签: sql-server-2008 user-defined-functions calculated-columns

我的表格中有四列:

  • Taxandotherexpenditurespercent
  • * NetAmount ***
  • *的 Taxandotherexpendituremoney **

现在我想要的是 netamount 列中的用户定义函数,该列计算金额之间的差异,并根据用户提供的值

即。假设用户提供25%为 Taxandotherexpenditurespercent ,则 NetAmount 必须金额 - Taxandotherexpenditurespercent

同样,如果值耗材为100,那么 NetAmount 必须金额 - Taxandotherexpendituremoney

我已经尝试使用谷歌搜索,除了我找不到用户定义函数的任何满意解释之外的一切?

1 个答案:

答案 0 :(得分:0)

这是你可以做的。 Ofcourse改变了一点以满足您的要求。

CREATE FUNCTION UDF_FindDifference (@OtherExpenditures VARCHAR(50))
RETURNS INT
AS
BEGIN
DECLARE @NetAmount INT

IF(CHARINDEX('%', @OtherExpenditures) > 0)
    BEGIN

        DECLARE @Amount INT

        SELECT @Amount = Taxandotherexpenditurespercent FROM yourTABLE

        SET @NetAmount = @Amount - REPLACE(@OtherExpenditures, '%', '')


    END
ELSE
    BEGIN

        DECLARE @Amount2 INT

        SELECT @Amount2 = Taxandotherexpendituremoney FROM yourTABLE

        SET @NetAmount = @Amount2 - @OtherExpenditures

    END 
RETURN @NetAmount
END

所以我在这里检查用户输入是否有%符号,并根据此条件进行计算。