-1

テーブルに4つの列があります。

  • 税金およびその他の支出の割合
  • *正味金額***
  • *税金およびその他の支出金**

今私が欲しいのは、金額とユーザーが提供した値との差を計算するnetamount列のユーザー定義関数です

つまり、ユーザーが25%をTaxandotherexpenditurespercentとして提供すると、 NetAmount金額である必要があります-Taxandotherexpenditurespercent

同様に、供給額が100の場合、NetAmountはAmount - Taxandotherexpendituremoneyである必要があります。

私はそれとすべてをグーグルで検索しようとしましたが、ユーザー定義関数に対する満足のいく説明が見つかりませんか?

4

1 に答える 1

0

これができることです。もちろん、要件に合わせて少し変更します。

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

ここでは、ユーザー入力に%符号があるかどうかを確認しており、この基準に基づいて計算を行っています。

于 2013-03-17T07:13:23.600 に答える