• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

SQL скидка, помогите написать скрипт

Автор crazyjonyster, Вересень 09, 2016, 15:01:27

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

crazyjonyster

Всем привет! Есть задача дать скидку 20% на товар поставщика при условии если купят больше одной единицы!

ДАНО:
Продукт "Варенье в баночках"
Все товары нужно поставщика на находятся in_group_id IN (34) и в этой группе товары только одного (нужного нам) поставщика!
Айдишники товаров (in_tovar_id (27884, 27442, 27437, 16070, 25515, 25355, 18413, 32725, 32724, 32723, 15337, 12839, 12837, 12834, 23645, 20546, 20324, 31138, 31137, 31136, 31029)
Скидка tovar_znig_proc = 20

ТОЧНОЕ УСЛОВИЕ АКЦИИ:
Если в чеке есть как минимум две единицы продукции поставщика, то на эти позиции дать скидку 20%

ПРИМЕР_1:
В чеке три артикула: Товар_1, Товар_варенье_акция_1, Товар_варенье_акция_2. То на Товар_варенье_акция_1 и Товар_варенье_акция_2 должна быть скидка 20%, а на Товар_1 - никакой скидки.

ПРИМЕР_2:
В чеке Товар_варенье_акция_1 (2шт) и Товар_варенье_акция_2 (1шт) - скидка 20% дается на Товар_варенье_акция_1 (2шт)
То есть скидка дается если в черек есть парное кол-во штук продукции поставщика! То есть на 2, 4, 6, 8, 10 - скидка есть, а если в чеке 3, то скидка только на 2, если в чеке 5, то скидка только на 4, если в чеке 7, то только на 6 и т.д.

Пробовал писать:
IF(in_group_id IN (34) AND in_tovar_kolvo > 1) THEN tovar_znig_proc = 20;

и пробовал 

IF (in_tovar_id (27884, 27442, 27437, 16070, 25515, 25355, 18413, 32725, 32724, 32723, 15337, 12839, 12837, 12834, 23645, 20546, 20324, 31138, 31137, 31136, 31029)
AND in_tovar_prev_id (27884, 27442, 27437, 16070, 25515, 25355, 18413, 32725, 32724, 32723, 15337, 12839, 12837, 12834, 23645, 20546, 20324, 31138, 31137, 31136, 31029))
THEN tovar_znig_proc = 20;

Но все эти скрипты не покрывают условия полностью!

Я понимаю что нужно применить операторы OR и ELSE, а так же BEGIN и END, но как это сделать правильно не имею понятия...

Помогите пожалуйста, уверен для того кто шарит это вопрос 2-3 минут!