如何在另一个函数中调用一个函数
How to call a function in another Function
我需要编写一个脚本来创建和调用一个名为 fnItemTotal
的函数,该函数计算 OrderItems
table 中某项商品的总金额(折扣价乘以数量) .
为此,此函数应接受一个项目 ID 参数,它应使用我之前创建的 DiscountPrice 函数,并且它应 return 该项目的总价值。
这是我创建的函数,它已被创建。但是当我尝试调用它时它给出了一个错误。
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
这是我用来称呼它的:
Select ItemID,dbo.fnItemTotal(ItemID) AS 'Total Price'
from OrderItems
ORDER BY ItemID;
这是我调用它时出现的错误:
Msg 208, Level 16, State 3, Line 2
Invalid object name 'dbo.fnDiscountPrice'.
尝试使用以下代码:
CREATE FUNCTION dbo.fnItemTotal
(@ItemID INT )
RETURNS MONEY
BEGIN
DECLARE @X as MONEY
SELECT @X = dbo.fnDiscountPrice(ItemID) * OrderItems.Quantity
FROM
OrderItems
WHERE
OrderItems.ItemID=@ItemID
RETURN @X
END
我需要编写一个脚本来创建和调用一个名为 fnItemTotal
的函数,该函数计算 OrderItems
table 中某项商品的总金额(折扣价乘以数量) .
为此,此函数应接受一个项目 ID 参数,它应使用我之前创建的 DiscountPrice 函数,并且它应 return 该项目的总价值。
这是我创建的函数,它已被创建。但是当我尝试调用它时它给出了一个错误。
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
这是我用来称呼它的:
Select ItemID,dbo.fnItemTotal(ItemID) AS 'Total Price'
from OrderItems
ORDER BY ItemID;
这是我调用它时出现的错误:
Msg 208, Level 16, State 3, Line 2 Invalid object name 'dbo.fnDiscountPrice'.
尝试使用以下代码:
CREATE FUNCTION dbo.fnItemTotal
(@ItemID INT )
RETURNS MONEY
BEGIN
DECLARE @X as MONEY
SELECT @X = dbo.fnDiscountPrice(ItemID) * OrderItems.Quantity
FROM
OrderItems
WHERE
OrderItems.ItemID=@ItemID
RETURN @X
END