31.03.2010 10:37 | |
tavruxaПользователь iNETsHOP Количество сообщений 21 Зарегистрирован: 08-09-2009, 12:49:13 |
Прошу помощи в написании фильтра в схеме импорта. Работаю с поставщиком по остаткам, и нехочу что бы в ИШ тянулись позиции остаток которых = 0 или остаток является отрицательным = -1 (например). Сегодня отрицательные остатки получилось отсеч, вводом фильтра на наличие в строке остатка символ "-". А вот с нулевыми остатками не получается, так как при вводе фильтра на наличие символа "0" в строке отсекаются позиции остаток которых = 10,20,30 ....и т.д. Помогите решить проблему. Спасибо. |
04.04.2010 17:44 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Удаление товаров без остатка
Чтобы пропустить при импорте товары остаток который равен нулю, достаточно добавить в поле "Скрипт обработки суммарный" следующий текст: Код
|
21.10.2013 17:24 | |
mora-85Пользователь iNETsHOP Количество сообщений 17 Зарегистрирован: 29-07-2013, 17:46:32 |
Подскажите, а как этот запрос изменить для товара которого 1шт в наличии? Отредактировано mora-85: 21.10.2013, 17:24:24 |
21.10.2013 17:28 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Какой именно текст импортируется в поле остаток, 1 или 1шт? |
21.10.2013 17:33 | |
mora-85Пользователь iNETsHOP Количество сообщений 17 Зарегистрирован: 29-07-2013, 17:46:32 |
есть и 12шт и 12+ и >12 вот эти надо оставить, а 1шт или 1 просто убрать, я также применяю запрос вида UPDATE #TMP_PRICE SET REST = REPLACE(CAST(REST as varchar(100)), '+', ''); для того чтобы убрать + из количества или другой символ или шт. |
21.10.2013 17:44 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Дополнительный SQL-запрос обработки импортированного прайса для удаления товаров в зависимости от остатка, на примере если текст в ячейке Остаток равен 1шт будет выглядеть так DELETE FROM #TMP_PRICE WHERE CAST(REST as varchar(100)) = '1шт'; Таких SQL-запросов вы можете выполнять сколько-угодно, в данном случае они не зависят друг от друга, разве что один модифицирует данные, которые потребуются другому и именно в таком виде. Т.е. если есть товары, которые содержат 1, 1шт, +1шт и.т.п., то можно применить следующий: DELETE FROM #TMP_PRICE WHERE CAST(REST as varchar(100)) in ('1', '1шт', '1 шт', '+1шт', )'; Обратите мнимание, что если вы будете применять маску, как: DELETE FROM #TMP_PRICE WHERE CAST(REST as varchar(100)) like '"%1шт%'; то будут удалены все товары количество которых заканчивается на единицу. Если единица - первый символ в колонке остатка, то можно использовать DELETE FROM #TMP_PRICE WHERE CAST(REST as varchar(100)) like '1шт%'; |
21.10.2013 18:11 | |
supportSupport Количество сообщений 1199 Зарегистрирован: 11-04-2008, 19:11:57 |
Ошибка выполнения из-за пропущеной закрывающей скобки в примере. Примеры исправлены, а ваш SQL-запрос будет выглядеть так: DELETE FROM #TMP_PRICE WHERE CAST(REST as varchar(100)) = '1'; |
21.10.2013 19:22 | |
mora-85Пользователь iNETsHOP Количество сообщений 17 Зарегистрирован: 29-07-2013, 17:46:32 |
Спасибо за помощь! Все работает. |