Dan*_*ard 3 sql t-sql sql-server sql-function sql-server-2012
我需要编写一个脚本来创建并调用一个名为的函数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”无效。
尝试使用以下代码:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25961 次 |
| 最近记录: |