小编Dan*_*ard的帖子

如何在一个函数中调用另一个函数

我需要编写一个脚本来创建并调用一个名为的函数fnItemTotal,该函数计算表中商品的总金额OrderItems(折扣价格乘以数量)。

为此,该函数应该接受一个商品 ID 参数,它应该使用我之前创建的 DiscountPrice 函数,并且应该返回该商品的总计值。


这是我创建的函数,它被创建了。但是当我尝试调用它时,它给出了错误。

CREATE FUNCTION fnItemTotal 
        (@ItemID INT )
    RETURNS MONEY
BEGIN
RETURN 
    (
        SELECT 
            ItemId,
            (SELECT * FROM dbo.fnDiscountPrice(ItemID) WHERE ItemID=@ItemID)*Quantity)--The fnDiscountPrice is the Other function i created.
        FROM 
            OrderItems
        WHERE 
            ItemID=@ItemID
    );
END 
GO
Run Code Online (Sandbox Code Playgroud)

这就是我用来称呼它的方式:

Select ItemID,dbo.fnItemTotal(ItemID) AS 'Total Price'
from OrderItems 
ORDER BY ItemID;
Run Code Online (Sandbox Code Playgroud)

这是我调用它时给我的错误:

消息 208,级别 16,状态 3,第 2 行 对象名称“dbo.fnDiscountPrice”无效。

sql t-sql sql-server sql-function sql-server-2012

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

sql ×1

sql-function ×1

sql-server ×1

sql-server-2012 ×1

t-sql ×1