[英]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.