簡體   English   中英

使用多個 if 語句創建過程時獲取無效的列名

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM