这是我应该回答的问题:
这是我的SQL语句:
USE MyGuitarShop;
DECLARE @AllProduct2 INT;
DECLARE @AvgAllListPrice MONEY;
SET @AllProduct2 = (SELECT COUNT(ProductID) FROM Products);
SET @AvgAllListPrice = (SELECT AVG (ListPrice) FROM Products);
IF @AllProduct2 > 7
BEIGN
PRINT 'The number of products is greater than or equal to 7';
PRINT 'The average list price for the products is $' + CONVERT (varchar,@AvgAllListPrice,1);
END;
ELSE
PRINT 'The number of products is less than 7';
我做错了什么或我错过了什么?
修改
很抱歉没有添加错误:
Msg 102,Level 15,State 1,Line 8 “BEIGN”附近的语法不正确。 Msg 102,Level 15,State 1,Line 11 ';'附近的语法不正确。
我最后通过重新编写代码来修复它:
USE MyGuitarShop;
DECLARE @AllProduct2 INT;
DECLARE @AvgListPrice MONEY;
SELECT @AllProduct2 = COUNT(ProductID),
@AvgListPrice = AVG (ListPrice)
FROM Products
IF @AllProduct2 > 7
BEGIN
PRINT 'The number of products is greater than or equal to 7';
PRINT 'The average list price is $' + CONVERT (VARCHAR, @AvgListPrice,1) + '.';
END;
ELSE
PRINT 'The number of products is less than 7';
再次抱歉,感谢帮助我的人!!!!!
答案 0 :(得分:0)
BEGIN
答案 1 :(得分:-2)
您应该使用SELECT ... INTO ...
语法。这也允许您使用单个查询设置两个变量。
SELECT COUNT(ProductID), AVG(ListPrice) INTO @AllProduct2, @AvgAllListPrice FROM PRODUCTS
或替代分配语法
SELECT @AllProduct2 := COUNT(ProductID), @AvgAllListPrice := AVG(ListPrice) FROM PRODUCTS
现在您正在尝试将结果集分配给变量,而不是该结果集中包含的值。