2013-09-20 5 views
0

Я использую программу, которая использует SQL в фоновом режиме, и я столкнулся с проблемой, и я просто не могу понять это.Кодирование выражения SQL «IF»

Он попросил выражение SQL рассчитать стоимость в поле данных. Я как-то понимаю, как это работает, потому что Ive использовал Excel и делал некоторые сложные вычисления, но SQL отличается, и мне сложно его схватить. Так или иначе ...

мне нужно иметь код выражение сказать:

If column A is between $0-$9.99 add 70% 
If column A is between $10-$14.99 add 30% 
If column A is between $15-$24.99 add 21% 
If column A is between $25-$89.99 add 14.9% 
If column A is between $90-$244.99 add 10% 
If column A is between $245-$499.99 add 9% 
If column A is between $500-1999.99 add 6.9% 
If column A is   $3000 and up add 7.5 % 

Это все должно быть одна строка/выражение

Также следует округлить до 2-го знака после запятой.

Если я что-то отсутствует или использовать неправильно формулировка, прости меня -SQL новичку здесь

Пожалуйста, помогите мне !! Спасибо

+1

использовать поиск «случаи» Из-за этого – zxc

+6

сервера базы данных Что вы используете? Oracle, Mysql, mirco soft sql-server? В синтаксисе SQL есть небольшие различия, которые кто-то должен будет знать, чтобы помочь вам. –

+0

Что вы подразумеваете под "add xx%"? Вы хотите добавить что-то вроде «0.7»? '1.7' (коэффициент умножения)? Или 'цена * 1,7' (окончательное значение)? –

ответ

0

Используйте случай:

select cast(
    case 
    when columnA between 0 and 9.99 then columnA * 1.7 
    when columnA between 10 and 14.89 then columnA * 1.3 
    -- etc for other value ranges 
    else coulumnA 
    end as decimal(10, 2)) as columnA_plus_fee 
+0

Это база данных mySql, расположенная на удаленном сервере. Я использую программное обеспечение на локальном компьютере Windows, которое извлекает данные о ценах с сервера поставщиков, и я должен добавить инструкцию для увеличения стоимости. Похоже, что оператор Case - это то, что мне нужно добавить процентное количество, но как это делается, я не знаю, это либо добавление процента, либо умножение. Я думаю, что часть «* 1.7» выглядит правильно в выражении Case перечисленные по-чешски. Конечной частью выражения я не получаю «else coulumnA end columnA_plus_tax». Мне нужно округлить до 2 десятичных дворцов, то есть: «10,25» знак доллара. – user2763118

+0

'else' для значения по умолчанию, если условия' when' не верны, и я решил вернуть столбец без изменений в этом случае. «Конец» является обязательным ключевым словом для закрытия инструкции 'case'. «ColumnA_plus_tax» - это имя столбца, которое я дал для результата результата case - назовите его как хотите. – Bohemian

+0

Я добавил актерский состав, чтобы он имел 2 знака после запятой – Bohemian

Смежные вопросы