Sql server 一定数量上所有值的总和

Sql server 一定数量上所有值的总和,sql-server,Sql Server,问题是:创建一个脚本来计算和打印所有购买的总额 对于所有 如果成本在2000兰特或以上,则必须显示短语“昂贵产品的总和”和总数 价值 如果不存在成本为2000兰特或以上的产品,则对于所有成本为1000兰特或以上的产品 它必须显示短语“平均产品总和”和总值。 如果没有产品 存在成本为1000兰特或以上的产品,则对于成本低于1000兰特的所有产品,必须显示短语 “廉价产品总和”和总价值。 如果根本不存在任何产品,则必须显示 短语“不存在任何产品”。 标记准则还规定,我们必须在答案中使用DECLARE

问题是:创建一个脚本来计算和打印所有购买的总额

对于所有 如果成本在2000兰特或以上,则必须显示短语“昂贵产品的总和”和总数 价值 如果不存在成本为2000兰特或以上的产品,则对于所有成本为1000兰特或以上的产品 它必须显示短语“平均产品总和”和总值。 如果没有产品 存在成本为1000兰特或以上的产品,则对于成本低于1000兰特的所有产品,必须显示短语 “廉价产品总和”和总价值。 如果根本不存在任何产品,则必须显示 短语“不存在任何产品”。 标记准则还规定,我们必须在答案中使用DECLARE和IF语句

输出必须如下所示:

样本结果:

2行受影响

昂贵产品总数:5998.00

这是一个学校作业的问题,所以我不希望得到完整的答案,只是朝着正确的方向努力,因为我不知道为什么这样做行不通

我正在使用SQL Server Management Studio 2014

到目前为止,我得到的是:

DECLARE @SUM_OF_EXPENSIVE_PRODUCTS int, @SUM_OF_AVERAGE_PRODUCTS int, @SUM_OF_CHEAP_PRODUCTS int

IF ((SELECT Price AS EXPENSIVE_PRODUCT FROM Product WHERE Price > 2000 ) > 0)
    SELECT SUM(EXPENSIVE_PRODUCT) = @SUM_OF_EXPENSIVE_PRODUCTS

ELSE IF ((SELECT Price AS AVERAGE_PRODUCT FROM Product WHERE Price > 1000) > 0)
    SELECT SUM(AVERAGE_PRODUCT) = @SUM_OF_AVERAGE_PRODUCTS

ELSE IF ((SELECT Price AS CHEAP_PRODUCT FROM Product WHERE Price < 1000) > 0)
    SELECT SUM(CHEAP_PRODUCT) = @SUM_OF_CHEAP_PRODUCTS

ELSE 
    SELECT 'NO PRODUCTS EXIST'
试试这个

更新的查询


您现在已经发现这不是正确的语法。首先:从表中选择价格。然后尝试以下操作:选择价格,当价格介于1000和1999.99之间时,选择大小写,然后选择“AVERAGE_PRODUCT”,否则从表中选择NULL结束。这三个类别必须显示为列还是行?什么版本的SQL Server?我已经更新了我的问题,以包括您要求的信息,谢谢,这非常有效,唯一的问题是标记规则说我们必须在answer@ScottyDooZA我不明白你在问什么!您的意思是,您需要在查询中使用DECLARE语句?是的,查询必须包含DECLARE语句add DECLARE@v_NoProducts VARCHAR100;SET@v_NoProducts='没有产品存在';在最后的选择中使用它:选择@v_NoProducts;去那里申报。或者,您也可以声明价格变量。@ScottyDooZA查找更新的查询。如果有助于标记,请回答..:
BEGIN
    DECLARE @ResultText varchar(100)
    DECLARE @Result varchar(10)
    IF EXISTS(Select 1 from tempTable WHERE Price > 1999)
    BEGIN
        SET @ResultText = 'SUM_OF_EXPENSIVE_PRODUCTS : '
        SET @Result = (SELECT SUM(Price) from tempTable where Price > 1999)
        SET @ResultText = @ResultText + @Result
    END
    ELSE IF EXISTS(Select 1 from tempTable WHERE Price > 999)
    BEGIN 
        SET @ResultText = 'SUM_OF_AVERAGE_PRODUCTS : '
        SET @Result = (SELECT SUM(Price) from tempTable where Price > 999)
        SET @ResultText = @ResultText + @Result
    END
    ELSE IF EXISTS(Select 1 from tempTable WHERE Price > 0)
    BEGIN
        SET @ResultText = 'SUM_OF_AVERAGE_PRODUCTS : '
        SET @Result = (SELECT SUM(Price) from tempTable where Price > 0)
        SET @ResultText = @ResultText + @Result
    END
    ELSE
    BEGIN
        SET @ResultText = 'NO PRODUCTS EXIST'       
    END
    SELECT @ResultText
END