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

11.03.2017 10:03

maxtelt


Пользователь iNETsHOP

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
Здравствуйте, подскажите можно ли вывести список всех товаров с артикулом (из справочника товаров), а рядом привязанные к нему товары всех поставщиков с артикулами?
Пользователь оффлайн Распечатать
 

11.03.2017 16:39

support


Support


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

Если у вас в каталоге несколько товаров имеют одинаковый артикул производителя, но записаны как несколько разных товаров (например с разными наименованиями), то видеть привязанные товары поставщиков вы можете только по одному товару каталога.
Пользователь оффлайн Распечатать
 

12.03.2017 09:30

maxtelt


Пользователь iNETsHOP

Тема начата

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
Попробую объяснить на пальцах. На скриншоте показал наглядно. Хотелось бы увидеть таблицу вида
Kuppersberg Lora 90 X 4HPB id54323 и привязанные к нему артикулы el71161755 holod120494 mv20034381 25749 id54323.
В справочнике товаров это можно сделать вручную лишь по одному товару что очень долго, поэтому хотелось бы в excel, чтобы можно было пакетно изменить артикулы.
Прикрепленные файлы
2.png   ( 20 Просмотров | 99.8 KB )
Пользователь оффлайн Распечатать
 

12.03.2017 19:34

support


Support


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

SELECT
G_NAME,
G_SID,
SG_ARTIKUL
FROM TBL_GOODS, TBL_SUPPLIERS_GOODS
WHERE G_ID = SG_G_ID
Пользователь оффлайн Распечатать
 

12.03.2017 20:40

maxtelt


Пользователь iNETsHOP

Тема начата

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
Если взять пример из скриншота 2.png, то должна получится вот такая таблица 6.png. Т.е надо наименование товара из справочника поставщиков и все артикулы привязанных к этому товару.
Прикрепленные файлы
6.png   ( 11 Просмотров | 75.4 KB )
7.png   ( 8 Просмотров | 153.6 KB )
Пользователь оффлайн Распечатать
 

12.03.2017 21:15

Admin


Администратор


Количество сообщений   135
Зарегистрирован:   23-08-2007, 09:03:21
Цитата
Написал: maxtelt
Если взять пример из скриншота 2.png, то должна получится вот такая таблица 6.png.

Пока из предыдущих описаний этого не следовало.

Экспорт в Эксель подразумевает вывод таблицы (матрицы), которая имеет определенное количество строк и столбцов, а у разных товаров в каталоге количество привязанных товаров поставщиков может быть разным.

Цитата
Написал: maxtelt
надо наименование товара из справочника поставщиков и все артикулы привязанных к этому товару.

Вы имеете в виду не сам список товаров как писали ранее, а матрицу из поставщиков (артикулов) то такого SQL-запроса нет и он требует предварительного программирования как сводный прайс-лист.

По одному товару каталога (артикулу) вы можете экспортировать список поставщиков и артикулов товаров поставщиков.

Код

SELECT
G_NAME as "Наименование товара",
G_SID as "Артикул",
S_NAME as "Поставщик",
SG_ARTIKUL as "Артикул поставщика"
FROM TBL_GOODS, TBL_SUPPLIERS_GOODS, TBL_SUPPLIERS
WHERE G_ID = SG_G_ID
AND SG_S_ID = S_ID
AND G_SID = :ARTIKUL
Пользователь оффлайн Распечатать
 

13.03.2017 18:23

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Сводный прайс с артикулами поставщиков


Экспорт матрицы (аналогичной сводному прайс-листу) с артикулами поставщиков вы можете сделать при помощи следующего SQL-запроса:

Код

DECLARE @SQL nvarchar(max), @S_ID int, @S_NAME varchar(100);
SET @SQL = 'SELECT';
SET @SQL = @SQL + ' g.G_ID AS "Код"';
SET @SQL = @SQL + ', g.G_NAME AS "Название"';
SET @SQL = @SQL + ', g.G_SID AS "Артикул"';
SET @SQL = @SQL + ', g.PRICE AS "Цена"';

DECLARE cSuppliers CURSOR LOCAL READ_ONLY FOR
select /*TOP 255 */S_ID, S_NAME
from TBL_SUPPLIERS s
where s.S_NOT_USE = 0
order by s.S_NAME ASC;

OPEN cSuppliers;
FETCH NEXT FROM cSuppliers INTO @S_ID, @S_NAME;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @SQL = @SQL + ', (SELECT TOP 1 sg.SG_ARTIKUL FROM TBL_SUPPLIERS_GOODS sg WHERE sg.SG_G_ID = g.G_ID /*AND sg.SG_PRESENT=1 */AND sg.SG_S_ID=' + STR(@S_ID, 10, 0) + ' ORDER BY sg.SG_ID DESC) AS "' + @S_NAME + '"';
FETCH NEXT FROM cSuppliers INTO @S_ID, @S_NAME;
END;
CLOSE cSuppliers;
DEALLOCATE cSuppliers;
SET @SQL = @SQL + ' FROM TBL_GOODS g WHERE g.G_ACTIVE=1/* AND g.G_PRESENT=1*/';

exec sp_executesql @SQL;


В данном SQL-запросе, если к товару каталога привязано несколько товаров одного и того же поставщика (такое бывает, если появляется аналогичная модель но с каким-то усовершенствованием и т.п. но в прайсе идет как отдельный товар), то будет взят артикул последнего добавленного товара поставщика.
Пользователь оффлайн Распечатать
 

13.03.2017 19:14

maxtelt


Пользователь iNETsHOP

Тема начата

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
Спасибо большое, это то, что нужно.
Пользователь оффлайн Распечатать
 

13.03.2017 19:29

maxtelt


Пользователь iNETsHOP

Тема начата

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
И еще вопрос, как можно будет залить новые артикулы в справочник товаров. К сожалению приходится так извращаться потому что товар на сайте привязан к артикулам которые в справочнике товара а не коду Inetshop. Допустим был товар AEG 47005V9-MN и артикул у него id361086 (G_SID) а мне надо его поменять например на holod177894 при том что код в справочнике товара останется прежним.
Пользователь оффлайн Распечатать
 

17.03.2017 14:30

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Вы строите процесс обновления товаров на сайте не совсем верно. В вашем случае будет рациональнее обновлять товары в интернет-магазине по коду товара программы iNETsHOP, т.к. он уникальный и однозначно идентифицирует товар.
Пользователь оффлайн Распечатать
 

26.10.2018 18:27

maxtelt


Пользователь iNETsHOP

Тема начата

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
Подскажите что надо дописать в этот запрос, чтобы выводились товары после определенной даты?
Код
SELECT
product_sku,
product_name,
case
when product_price2 < product_price1*0.91 then product_price1*0.93
when product_price2 >= product_price1*0.91 and product_price2 < product_price1*0.93 then product_price2-50
when product_price2 >= product_price1*0.93 and product_price2 < product_price1*0.94 then product_price2*0.99
when product_price2 >= product_price1*0.94 and product_price2 < product_price1*0.96 then product_price2*0.98
when product_price2 >= product_price1*0.96 and product_price2 < product_price1*0.98 then product_price2*0.97
when product_price2 >= product_price1*0.98 and product_price2 < product_price1*0.99 then product_price2*0.96
when product_price2 >= product_price1*0.99 and product_price2 < product_price1*1.05 then product_price2*0.95
when product_price2 >= product_price1*1.05 and product_price2 < product_price1*1.10 then product_price2*0.93
end as product_pricesell,
product_price1,
product_price2 as Кортинг,
product_price3 as Kuppersperg,
product_price15 as Blanco,
product_price4 as Bosch,
product_price9 as Aeg,
product_price10 as Zanussi,
product_price11 as Gorenje,
product_price14 as Smeg,
product_price21 as JetAir,
product_price22 as Franke,
product_price23 as Kuppersberg1,
product_price25 as Zigmund,
product_price29 as Elica,
product_price31 as Liebherr,
product_price32 as Lava,
product_price8 as Krona
FROM
(
SELECT
G_SID as "product_sku",
G_NAME as "product_name",
price as "product_price1",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 8 AND SG_PRESENT=1) as "product_price2",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 38 AND SG_PRESENT=1) as "product_price3",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 28 AND SG_PRESENT=1) as "product_price15",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 4 AND SG_PRESENT=1) as "product_price4",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 57 AND SG_PRESENT=1) as "product_price9",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 10 AND SG_PRESENT=1) as "product_price10",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 11 AND SG_PRESENT=1) as "product_price11",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 17 AND SG_PRESENT=1) as "product_price14",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 29 AND SG_PRESENT=1) as "product_price21",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 30 AND SG_PRESENT=1) as "product_price22",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 31 AND SG_PRESENT=1) as "product_price23",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 32 AND SG_PRESENT=1) as "product_price25",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 34 AND SG_PRESENT=1) as "product_price29",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 48 AND SG_PRESENT=1) as "product_price31",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 37 AND SG_PRESENT=1) as "product_price32",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 7 AND SG_PRESENT=1) as "product_price8"
FROM TBL_GOODS
WHERE G_ACTIVE = 1
AND G_PRESENT = 1
) t
Пользователь оффлайн Распечатать
 

26.10.2018 20:37

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Какой именно датой вы хотите ограничить выборку товаров? Вернее из какой колонки?
Пользователь оффлайн Распечатать
 

26.10.2018 21:45

maxtelt


Пользователь iNETsHOP

Тема начата

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
Колонка Редактирован
Пользователь оффлайн Распечатать
 

27.10.2018 14:02

maxtelt


Пользователь iNETsHOP

Тема начата

Количество сообщений   115
Зарегистрирован:   03-12-2014, 12:33:15
На скрине пометил
Прикрепленные файлы
12.png   ( 4 Просмотров | 89.7 KB )
Пользователь оффлайн Распечатать
 

29.10.2018 03:35

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Чтобы в данную выборку добавить ограничение по указанной дате, достаточно реализовать условие, например AND G_DATE_EDIT >= '2018-10-28 12:00:00' , чтобы было вот так:
Код

SELECT
product_sku,
product_name,
case
when product_price2 < product_price1*0.91 then product_price1*0.93
when product_price2 >= product_price1*0.91 and product_price2 < product_price1*0.93 then product_price2-50
when product_price2 >= product_price1*0.93 and product_price2 < product_price1*0.94 then product_price2*0.99
when product_price2 >= product_price1*0.94 and product_price2 < product_price1*0.96 then product_price2*0.98
when product_price2 >= product_price1*0.96 and product_price2 < product_price1*0.98 then product_price2*0.97
when product_price2 >= product_price1*0.98 and product_price2 < product_price1*0.99 then product_price2*0.96
when product_price2 >= product_price1*0.99 and product_price2 < product_price1*1.05 then product_price2*0.95
when product_price2 >= product_price1*1.05 and product_price2 < product_price1*1.10 then product_price2*0.93
end as product_pricesell,
product_price1,
product_price2 as Кортинг,
product_price3 as Kuppersperg,
product_price15 as Blanco,
product_price4 as Bosch,
product_price9 as Aeg,
product_price10 as Zanussi,
product_price11 as Gorenje,
product_price14 as Smeg,
product_price21 as JetAir,
product_price22 as Franke,
product_price23 as Kuppersberg1,
product_price25 as Zigmund,
product_price29 as Elica,
product_price31 as Liebherr,
product_price32 as Lava,
product_price8 as Krona
FROM
(
SELECT
G_SID as "product_sku",
G_NAME as "product_name",
price as "product_price1",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 8 AND SG_PRESENT=1) as "product_price2",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 38 AND SG_PRESENT=1) as "product_price3",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 28 AND SG_PRESENT=1) as "product_price15",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 4 AND SG_PRESENT=1) as "product_price4",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 57 AND SG_PRESENT=1) as "product_price9",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 10 AND SG_PRESENT=1) as "product_price10",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 11 AND SG_PRESENT=1) as "product_price11",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 17 AND SG_PRESENT=1) as "product_price14",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 29 AND SG_PRESENT=1) as "product_price21",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 30 AND SG_PRESENT=1) as "product_price22",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 31 AND SG_PRESENT=1) as "product_price23",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 32 AND SG_PRESENT=1) as "product_price25",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 34 AND SG_PRESENT=1) as "product_price29",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 48 AND SG_PRESENT=1) as "product_price31",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 37 AND SG_PRESENT=1) as "product_price32",
(SELECT TOP 1 SG_PRICE FROM TBL_SUPPLIERS_GOODS WHERE SG_G_ID = G_ID AND SG_S_ID = 7 AND SG_PRESENT=1) as "product_price8"
FROM TBL_GOODS
WHERE G_ACTIVE = 1
AND G_PRESENT = 1
AND G_DATE_EDIT >= '2018-10-28 12:00:00'
) t


Если у вас системные настройки отображают дату в другом фотмате, вы можеет посмотреть его выполнив запрос
Код

select GetDate();
Пользователь оффлайн Распечатать
 

Распечатать  |  Следующая тема  |  Предыдущая тема
Перейти
Первая страница 1 2 3 » Последняя страница  

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


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