Для того чтобы организовать торговлю в Интернет-магазине компании потребуется наличие всего одного Менеджера, контролирующего процесс автоматической работы магазина как из офиса компании, так и из любого места в Сети.
Каталог прайсов интернет магазинов - разместите свой прайс бесплатно
  Главная  |    О компании  |    Новости  |    Статьи  |    Форум  |    Клиенты  |    Обратная связь  |    Карта сайта
Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль.
Запомнить
Пароль
   
Форум
 Программа iNETsHOP » Работа с программой
        Индентификация/привязка товаров по коду поставщика
Индентификация/привязка товаров по коду поставщика

15.10.2016 14:59

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Пользовательский SQL-запрос для копирования преобразованного артикула из справочника товаров (с удаленными некоторыми символами) в характеристику с кодом (ID) равным 8543 будет выглядеть так:

Код

DECLARE @G_ID int, @P_ID int, @GP_ID int, @PROP_VALUE varchar(150);
SET @P_ID = 8543;

DECLARE cGoods CURSOR LOCAL READ_ONLY FOR
SELECT G_ID, G_SID, (SELECT TOP 1 GP_ID FROM TBL_GOODS_PROPS WHERE GP_P_ID = @P_ID AND GP_G_ID = G_ID)
FROM TBL_GOODS
WHERE NOT G_SID IS NULL
AND G_SID <> ''
AND NOT EXISTS (SELECT 1 FROM TBL_GOODS_PROPS WHERE GP_P_ID = @P_ID AND GP_G_ID = G_ID AND NOT GP_VALUE IS NULL AND GP_VALUE <> '');
OPEN cGoods;
FETCH NEXT FROM cGoods INTO @G_ID, @PROP_VALUE, @GP_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @PROP_VALUE = REPLACE(@PROP_VALUE, ' ', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '-', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '.', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '(', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, ')', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '/', '');
IF @GP_ID > 0
BEGIN
UPDATE TBL_GOODS_PROPS
SET GP_VALUE = @PROP_VALUE
WHERE GP_ID = @GP_ID;
END
ELSE
BEGIN
INSERT INTO TBL_GOODS_PROPS (GP_VALUE, GP_P_ID, GP_G_ID)
VALUES (@PROP_VALUE, @P_ID, @G_ID);
END;

FETCH NEXT FROM cGoods INTO @G_ID, @PROP_VALUE, @GP_ID;
END;
CLOSE cGoods;
DEALLOCATE cGoods;


Для аналогичных манипуляций с колонкой бренда и записью в характеристику с кодом (ID) равным 8547:

Код

DECLARE @G_ID int, @P_ID int, @GP_ID int, @PROP_VALUE varchar(150);
SET @P_ID = 8547;

DECLARE cGoods CURSOR LOCAL READ_ONLY FOR
SELECT G_ID, B_NAME, (SELECT TOP 1 GP_ID FROM TBL_GOODS_PROPS WHERE GP_P_ID = @P_ID AND GP_G_ID = G_ID)
FROM TBL_GOODS, TBL_BRANDS
WHERE G_B_ID = B_ID
AND NOT EXISTS (SELECT 1 FROM TBL_GOODS_PROPS WHERE GP_P_ID = @P_ID AND GP_G_ID = G_ID AND NOT GP_VALUE IS NULL AND GP_VALUE <> '');
OPEN cGoods;
FETCH NEXT FROM cGoods INTO @G_ID, @PROP_VALUE, @GP_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @PROP_VALUE = REPLACE(@PROP_VALUE, ' ', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '-', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '.', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '(', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, ')', '');
SET @PROP_VALUE = REPLACE(@PROP_VALUE, '/', '');
IF @GP_ID > 0
BEGIN
UPDATE TBL_GOODS_PROPS
SET GP_VALUE = @PROP_VALUE
WHERE GP_ID = @GP_ID;
END
ELSE
BEGIN
INSERT INTO TBL_GOODS_PROPS (GP_VALUE, GP_P_ID, GP_G_ID)
VALUES (@PROP_VALUE, @P_ID, @G_ID);
END;

FETCH NEXT FROM cGoods INTO @G_ID, @PROP_VALUE, @GP_ID;
END;
CLOSE cGoods;
DEALLOCATE cGoods;


Пользователь оффлайн Распечатать
 

Распечатать  |  Следующая тема  |  Предыдущая тема
Перейти
 

Статистика форума
Тем: 506, Сообщений: 3222, Пользователей: 2255
Приветствуем новичка по имени Gotit
Ближайшие дни рождения
Сегодня именинников нет


iNETsHOP - программа для формирования каталога товаров интернет-магазина и обработки прайсов Copyright 2007-2015 "Программа iNETsHOP - работа с прайс-листами поставщиков для интернет магазинов ®" iNETsHOP - обработка, объединение, анализ прайсов поставщиков и конкурентов