Sql 我的IIF声明有什么问题我一直收到错误 选择描述作为食物, 价格, 涨价 iif(价格上涨/价格0.15,“高于15%的涨幅”。) 来自l_食品公司 其中(涨价/价格) .15 按描述排序;

Sql 我的IIF声明有什么问题我一直收到错误 选择描述作为食物, 价格, 涨价 iif(价格上涨/价格0.15,“高于15%的涨幅”。) 来自l_食品公司 其中(涨价/价格) .15 按描述排序;,sql,ms-access,Sql,Ms Access,我在完成这份声明时遇到了困难。我的iif语句不断给我错误问题是前一行缺少逗号,而WHERE子句中有多余的逗号 我应该注意,您也可以使用switch(): 选择描述为食品、价格、涨价、, 开关(涨价0.15*价格, “超过15%的增长” ) 来自l_食品公司 如果价格上涨0.15*价格 按描述排序; 注: 我在小数点前加了一个0,这样小数点更容易阅读 我更喜欢乘法而不是除法,因为出错的危险很小(我想可能会有溢出错误,但这比被零除的可能性要小得多) switch()可以,因为您不需要默认选项。w


我在完成这份声明时遇到了困难。我的iif语句不断给我错误

问题是前一行缺少逗号,而
WHERE
子句中有多余的逗号

我应该注意,您也可以使用
switch()

选择描述为食品、价格、涨价、,
开关(涨价<0.10*涨价或涨价为空,
“增幅低于10%,
价格涨幅>0.15*价格,
“超过15%的增长”
)
来自l_食品公司
如果价格上涨<0.10*价格或
涨价为空或
价格涨幅>0.15*价格
按描述排序;
注:

  • 我在小数点前加了一个
    0
    ,这样小数点更容易阅读
  • 我更喜欢乘法而不是除法,因为出错的危险很小(我想可能会有溢出错误,但这比被零除的可能性要小得多)
  • switch()
    可以,因为您不需要默认选项。
    where
    子句过滤掉这些内容

问题在于前一行缺少逗号,而
WHERE
子句中有多余的逗号

我应该注意,您也可以使用
switch()

选择描述为食品、价格、涨价、,
开关(涨价<0.10*涨价或涨价为空,
“增幅低于10%,
价格涨幅>0.15*价格,
“超过15%的增长”
)
来自l_食品公司
如果价格上涨<0.10*价格或
涨价为空或
价格涨幅>0.15*价格
按描述排序;
注:

  • 我在小数点前加了一个
    0
    ,这样小数点更容易阅读
  • 我更喜欢乘法而不是除法,因为出错的危险很小(我想可能会有溢出错误,但这比被零除的可能性要小得多)
  • switch()
    可以,因为您不需要默认选项。
    where
    子句过滤掉这些内容

上一行末尾缺少一个逗号。上一行末尾缺少一个逗号。谢谢您,先生,我非常感谢您总是给我@Gordon Linoff的帮助谢谢您,先生,我非常感谢您总是给我@Gordon Linoff的帮助
SELECT description as FOOD,
price,
price_increase
iif( price_increase/price < .10 or price_increase is null, 'Less than 10% Increase', 
 iif(price_increase/price > .15 , 'Greater that 15% increase ', ' ' ) )
from l_foods
where (price_increase/price) < .10 or price_increase is null, or (price_increase/price)
> .15
order by description;
select description as FOOD, price, price_increase,
       switch(price_increase < 0.10 * price or price_increase is null,
              'Less than 10% Increase', 
              price_increase > 0.15 * price,
              'Greater that 15% increase '
             )
from l_foods
where price_increase < 0.10 * price or
      price_increase is null or
      price_increase > 0.15 * price
order by description;