Также сегодня помогали клиенту на поддержке делать SQL дисконт, может кому будет интересно:
Это перенаправленное письмо:
От: УкрСклад
Кому: PHONE
Дата: 13 квітня 2017 р., 12:10:08
Тема: SQL-дисконт
===8<==============Оригинал текста письма===============
Приветствую Вас,
23.03.2017 в 17:26, Вы писали:
PP> Скорее всего я Вас не правльно понял. Товары с группы 7 и 5
PP> могут быть с разными кодами, и как итог:
PP> если с группы 7 товаров - 3 шт, с группы 5 - 2 шт, товар с id
PP> 4640 - 2 шт, то скидки будет две на товар с id 4640.
PP> Пример №1:
PP> группа 7 - чехол леново, чехол нокиа, чехол самсунг - всего три товара с группы 7
PP> группа 5 - защитное стекло леново, защитное стекло самсунг - всего 2 товара с группы 5
PP> товара с id 4640 - в чеке две шт (так как покупают два стекла то
PP> и услуги только две в чеке будет).
PP> Как итог условие в чеке выполнилось всего два раза - значит две скидки на товар с id 4640.
PP> Пример №2
PP> группа 7 - чехол леново, чехол нокиа - всего 2 товара с группы 7
PP> группа 5 - защитное стекло леново, защитное стекло самсунг,
PP> защитное стекло нокиа - всего 3 товара с группы 5
PP> товара с id 4640 - в чеке 3 шт (так как покупают три стекла то и услуги три в чеке будет).
PP> Как итог условие в чеке выполнилось всего два раза - значит две
PP> скидки на товар с id 4640, и один товар с id 4640 по полной стоимости.
PP> Если что не так не судите строго, я не программист. Вы професионалы в этом деле.
PP> Спасибо
Так и было в прошлом скрипте, проблема при добавлении доп. строк. Вот
попробуйте след. скрипт:
IF(in_tovar_id IN (4640)) THEN
BEGIN
SELECT
COUNT(vc.tov_kolvo),
SUM(CASE
WHEN vc.group_id = 5 THEN vc.tov_kolvo
END) AS sum5,
SUM(CASE
WHEN vc.group_id = 7 THEN vc.tov_kolvo
END) AS sum7
FROM
get_vkas_check_info(:in_doc_id) AS vc
WHERE
vc.tovar_id IN (4640) OR
vc.group_id IN (5,7)
INTO
:tmp_int1,
:tmp_float1,
:tmp_float2;
IF(tmp_float2 < tmp_float1) THEN
tmp_float1 = tmp_float2;
IF(tmp_int1 >= 3) THEN
BEGIN
tovar_znig_proc = ( (((in_tovar_cena-1.00)*tmp_float1))/(in_tovar_cena*in_tovar_kolvo) )*100;
END
END
--
С уважением, Дмитрий Котельников
Служба поддержки УкрСклад.
===8<===========Окончание оригинала теста письма========