[英]Getting invalid column name when creating a procedure using multiple if statements
如果有人能指出我正确的方向。 我有一个作业问题,我需要创建一个存储过程,该过程接受产品名称并检查客户花费了多少。 根据花费的多少,折扣会增加到现有折扣中。
我一直在参考老师提供的视频和 SQL 脚本。 我还检查了 w3schools、sqlshack 和其他一些网站来完成该项目,但我已经陷入困境。 if 语句中的任何列名都会给我一条错误消息“列名无效”。 如果将表名添加到列中,则会收到“无法绑定多部分标识符”的不同错误消息。 我已经将内部连接移到 if 语句内部并且没有改变任何东西。
Use Northwind;
go
CREATE PROCEDURE CategoryDiscount
@categoryname varchar(50)
AS
Select [Order Details].UnitPrice, Quantity from [Order Details]
INNER JOIN Products on [Order Details].ProductID= Products.ProductID
INNER JOIN Categories on Categories.CategoryID = [Order Details].ProductID
If (UnitPrice * Quantity) < 50
begin
update [Order Details]
set Discount = Discount + .05
Where CategoryName = '@categoryname';
end
ELSE IF (UnitPrice * Quantity) between 50 and 100
begin
update [Order Details]
set Discount = Discount + .10
Where CategoryName = '@categoryname';
end
ELSE IF (UnitPrice * Quantity) > 100
begin
update [Order Details]
set Discount = Discount + .15
Where CategoryName = '@categoryname';
end
Else
begin
print 'Incorrect'
end;
您应该将值 UnitPrice 和 Quantity 存储在变量中,这些值可以是 @UnitPrice 和 @Quantity 并且它将在存储过程开头的 select 语句中。 然后在 if 语句中使用这些变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.