-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
尽管我非常感谢你的建设性意见,但我已将其修正并产生了我想要的结果。非常感谢所有帮助过我的人。 –