2016-12-10 7 views
1
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; 

ERROR MESSAGE私はこの文を完成しようとしてトラブルを抱えていたエラー

を受信し続ける私のIIFステートメントを使用して、何が問題です。私のiifステートメントでエラーが発生する

+1

前の行の末尾にカンマがありません。 –

答えて

0

問題は、上記の行にカンマがないことと、WHERE節に余分なカンマがあることです。

私はあなたにもswitch()使用できることに注意してください:

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; 

注:

  • を私は小数点の前に0を置くので、小数点以下は読みやすいです。
  • エラーの危険性が非常に少ないので、私は除算に乗算する方が好きです(オーバーフローエラーが発生する可能性がありますが、ゼロで割るよりもずっと少ないです)。
  • switch()は、デフォルトのオプションが不要なため、問題ありません。 where句はそれらをフィルタリングします。
+0

ありがとうございました私は大変感謝しています。あなたはいつも私に@Gordon Linoff – Clay

関連する問題