Я пытаюсь увеличить ставки в определяемом пользователем диапазоне.Вводимые пользователем данные представляют собой простой набор инструкций о сегментах, но я не могу правильно понять SQL.
Вот что у меня есть
SELECT r.*,CASE
WHEN rate_amt < 0.25 THEN (rate_amt + 0.5) as rate_amt
WHEN (rate_amt >= 0.25 AND rate_amt < 0.5) THEN (rate_amt + 0.25) as rate_amt
WHEN (rate_amt >=0.5 AND rate_amt < 0.75) THEN (rate_amt + 0.01) as rate_amt
WHEN ELSE THEN (rate_amt) as rate_amt FROM (sc_module_rates r)
Запуск этого SQL вызывает ошибку
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'as rate_amt
WHEN (rate_amt >= 0.25 AND rate_amt < 0.5) THEN (0.25) as rate_amt
W' at line 2
Таблица выглядит следующим образом:
+-------------------+
| rate | rate_amt |
---------------------
| fiji | 0.04 |
| somoa | 0.76 |
| japan | 0.51 |
| china | 0.25 |
Мне нужен вывод, чтобы в основном добавить определяемую пользователем маржу к этим ставкам (число, как показано в запросе)
Может кто-нибудь сказать мне, что я делаю не так?Я несколько раз пытался изменить предложение WHEN, например:
AND(rate_amt >=0.5 , rate_amt < 0.75)
(rate_amt >=0.5 <0.75)
(rate_amt BETWEEN 0.5 and 0.75)
Все безуспешно и с тем же сообщением об ошибке.