-2
我正在嘗試創建一個存儲過程,該過程將打印客戶和他們購買的品牌列表。由程序生成的報告必須使用以下格式:ELSE附近語法錯誤
Customer Last Name1
BrandName1
BrandName2 ...
客戶最後名稱2
品牌
客戶最後NAME3
品牌
客戶和品牌表按發票,行和產品表分開。我使用連接將它們連接在一起,但是在使用IF和ELSE時,我的代碼中出現語法錯誤,我無法弄清楚它爲什麼會出錯。
CREATE PROCEDURE CustomerList
(@Cust_LName VARCHAR(20), @Brand_ID INT = NULL)
AS
BEGIN
IF(@Cust_LName IS NULL)
DECLARE Customer_Cursor CURSOR FOR
SELECT DISTINCT C.Cust_LName, B.Brand_Name
FROM LGCustomer C
LEFT JOIN LGInvoice I ON C.Cust_Code = I.Cust_Code
INNER JOIN LGLine L ON I.Inv_Num = L.Inv_Num
INNER JOIN LGProduct P ON L.Prod_SKU = P.Prod_SKU
INNER JOIN LGBrand B ON P.Brand_ID = B.Brand_ID
ORDER BY C.Cust_LName ASC
OPEN Customer_Cursor
FETCH NEXT FROM Customer_Cursor INTO @Cust_LName
WHILE (@@FETCH_STATUS = 0)
BEGIN
DECLARE Brand_Cursor CURSOR FOR
SELECT Brand_ID
FROM LGProduct
WHERE Brand_ID = @Brand_ID
OPEN Brand_Cursor
FETCH NEXT FROM Brand_Cursor INTO @Brand_ID
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT @Brand_ID
FETCH NEXT FROM Brand_Cursor INTO @Brand_ID
END
CLOSE Brand_Cursor
DEALLOCATE Brand_Cursor
FETCH NEXT FROM Customer_Cursor INTO @Cust_LName
END
CLOSE Customer_Cursor
DEALLOCATE Customer_Cursor
SELECT *
FROM LGCustomer
ELSE
BEGIN
SELECT *
FROM LGProduct
WHERE Brand_ID = @Brand_ID
END
END
GO
我已經試過了端氏的東西之前移除,以及移除IF和ELSE自己,但如果我這樣做,它不會顯示我多麼希望他們能夠顯示的結果。我在SQL方面比較新,所以我不確定我錯在哪裏。
在此先感謝您的幫助!
它看起來像你缺少的開始和結束你的第一個if語句 – paqogomez
我以前從來沒有說這個,但是有這麼多錯這個,你無法關閉幫助。這不是一個語法錯誤,你不知道這種語言發生了什麼。你需要一些有SQL經驗的人花一些時間(4小時)。 – JBrooks
儘管我非常感謝你的建設性意見,但我已將其修正併產生了我想要的結果。非常感謝所有幫助過我的人。 –