MySQL: Где цена ‹ 50, сум(цена +14)

Я создаю запрос, который будет автоматически добавлять стоимость доставки к цене товара, если она меньше 50 долларов, и другую, более высокую стоимость доставки, если исходная цена превышает 50 долларов. Я провел несколько экспериментов с CASE, ЕСЛИ и СУММ, но я не уверен, что мне нужно.

Исходный:

Stock_Number    Line Part_Number Q  T   Price
AAB_1074901519, AAB, 1074901519, 1, AM, 120.67
AAB_1074908119, AAB, 1074908119, 1, AM, 108.29
AAB_1264907619, AAB, 1264907619, 1, AM, 364.49
AAB_1294908319, AAB, 1294908319, 1, AM, 368.97
AAB_1378254,    AAB, 1378254,    1, AM, 36.18

Желанный:

AAB_1074901519, AAB, 1074901519, 1, AM, 144.67   //Because price > 50, +22
AAB_1074908119, AAB, 1074908119, 1, AM, 130.29   //Because price > 50, +22
AAB_1264907619, AAB, 1264907619, 1, AM, 386.49   //Because price > 50, +22
AAB_1294908319, AAB, 1294908319, 1, AM, 390.97   //Because price > 50, +22
AAB_1378254,    AAB, 1378254,    1, AM, 50.18   //Because price < 50, +14

Анил решил мою проблему. Спасибо всем за ваши усилия!

Вы можете использовать оператор case. Вот запрос. Замените имена таблиц и имена столбцов.

выберите случай, когда цена ‹ 50, затем цена + стоимость доставки, иначе цена заканчивается из вашей таблицы;


person alleuroKyle    schedule 21.08.2017    source источник
comment
Начните с публикации своей таблицы в виде текстовой таблицы и ожидаемых результатов также в виде текстовой таблицы.   -  person Raymond Nijland    schedule 21.08.2017
comment
покажи нам, что ты устал.   -  person Philipp Sander    schedule 21.08.2017
comment
подзапрос с оператором case, псевдоним case как price_s, сумма внешнего запроса (price_s)   -  person OregonTrail    schedule 21.08.2017
comment
Кроме того, это не звучит как хорошая идея.   -  person Philipp Sander    schedule 21.08.2017


Ответы (2)


Вы можете использовать оператор case. Вот запрос. Замените имена таблиц и имена столбцов.

select case when price < 50 then price + shipping cost else price end from your table;
person Anil    schedule 21.08.2017
comment
Великолепно! Вы решили мою проблему. Большое спасибо. Я буду использовать этот синтаксис для других проверок, которые я хотел сделать! - person alleuroKyle; 21.08.2017

Вы можете использовать это ОБНОВЛЕНИЕ:

update table set price= case
when price<50 then price+shipping_fee1
else price+shipping_fee2 
end;
person Krishnakumar    schedule 21.08.2017