超过一定数量的所有值的总和

时间:2016-10-06 06:17:17

标签: sql-server

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

  • 对于所有产品 成本为R2000或更高,它必须显示短语'SUM OF EXPENSIVE PRODUCTS:'和总数 值
  • 如果没有成本为R2000或更高的产品,那么对于所有成本为R1000或更高的产品 它必须显示“SUM OF AVERAGE PRODUCTS:”和总价值。
  • 如果没有产品那么 存在成本R1000或更多,然后对于所有成本低于R1000的产品必须显示该短语 '便宜产品的总和:'和总价值。
  • 如果根本没有产品,则必须显示 短语'没有产品存在'。

标记规则还说我们必须在答案中使用DECLAREIF语句

输出必须如下所示:

示例结果:

(2行(s)受影响)

昂贵产品总和: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'

1 个答案:

答案 0 :(得分:1)

试试这个,

更新了查询

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