SQL Server中的货币转换功能

时间:2014-11-20 16:10:42

标签: sql-server sql-server-2008

我创建了一个如下所示的标量函数。现在我需要改变这个函数,为这个函数提供一个可选参数,它应该返回一个表集。我尝试使用case语句,如果存在,但它没有返回我想要的结果集。

以下是两个结果集:

:一种。没有可选参数

SELECT fnPay(@Id,  @Id1,  @Id2, @Id3 , @Id4)

结果集:

Result
-------
123.00

B中。指定了可选参数。

SELECT fnPay fnPay(@Id,  @Id1,  @Id2, @Id3 , @Id4, 1)

结果集:

Col1 Col2 Col3
--------------
ABC  XYZ  KLM

有人可以帮帮我吗?

CREATE FUNCTION fnPay
(@Id1 DATETIME ,
 @Id2 NVARCHAR(5),
 @Id3 NVARCHAR(5),
 @Id4 NUMERIC(8,4)
)
RETURNS NUMERIC(8, 4)
AS
BEGIN
    DECLARE @Result NUMERIC(8,4);

    SET @Result = (SELECT t1.Description 
                   FROM tbl1 t1
                   JOIN tbl2 t2 ON t2.id = t1.id 
                   JOIN tbl3 t3 ON t3.id = t2.id
                   WHERE t1.id = 1 
                     AND t2.id = 2
                     AND .......)

    RETURN @Result 
END

0 个答案:

没有答案