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

10.11.2017 14:20

xlvetal


Посетитель

Количество сообщений   124
Зарегистрирован:   14-11-2015, 14:23:25
Пользовательский запрос на экспорт в excel
Что надо добавить в этот код (и куда его вставить) -

DECLARE @TBL_PROPS TABLE (G_ID int, PROPS varchar(max));
DECLARE @G_ID int, @P_NAME varchar(200), @PG_NAME varchar(200), @GP_VALUE varchar(max);
DECLARE @PROPS nvarchar(max);
DECLARE cGoods CURSOR FOR
SELECT G_ID
FROM TBL_GOODS;

OPEN cGoods;
FETCH NEXT FROM cGoods INTO @G_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @PROPS = '';

DECLARE cProps CURSOR FOR
SELECT DISTINCT ISNULL(GP_VALUE, ''), P_NAME, ISNULL(PG_NAME, '')
FROM TBL_GOODS_PROPS
INNER JOIN TBL_PROPS ON GP_P_ID = P_ID
LEFT OUTER JOIN TBL_PROPS_GROUPS ON P_PG_ID = PG_ID
WHERE GP_G_ID = @G_ID;

OPEN cProps;
FETCH NEXT FROM cProps INTO @GP_VALUE, @P_NAME, @PG_NAME;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF @GP_VALUE <> ''
BEGIN
IF @PG_NAME <> ''
SET @PROPS = @PROPS + 'list/' + @PG_NAME + ';';
SET @PROPS = @PROPS + @P_NAME + ':';
SET @PROPS = @PROPS + @GP_VALUE + '|';
END;
FETCH NEXT FROM cProps INTO @GP_VALUE, @P_NAME, @PG_NAME;
END
CLOSE cProps;
DEALLOCATE cProps;
INSERT INTO @TBL_PROPS(G_ID, PROPS) VALUES (@G_ID, @PROPS);
FETCH NEXT FROM cGoods INTO @G_ID;
END;
CLOSE cGoods;
DEALLOCATE cGoods;

SELECT
g.G_ID as product_id,
g.G_SID as ean,
g.G_NAME as name,
g.G_DESC as short_description,
g.G_DESC_FULL as description,
g.G_REST as qty,
CASE WHEN g.G_PRESENT > 0 THEN '&#228;&#224;' ELSE '&#237;&#229;&#242;' END as unlimited,
CASE WHEN g.G_ACTIVE > 0 THEN '&#228;&#224;' ELSE '&#237;&#229;&#242;' END as publish,
REPLACE(gr.GR_FULL_NAME, '\', '/') as category,
REPLACE(LTRIM(STR(g.price, 10, 2)), '.', ','),
(SELECT B_NAME FROM TBL_BRANDS b WHERE b.B_ID = g.G_B_ID) as manufacturer,
CASE WHEN g.G_ACTION > 0 THEN '&#228;&#224;' ELSE '&#237;&#229;&#242;' END as label,
p.PROPS as extra_fields
FROM TBL_GOODS g, TBL_GROUPS gr, @TBL_PROPS p
WHERE g.G_GR_ID = gr.GR_ID
and g.G_ID = p.G_ID
;

Что бы выгружало еще и столбец тип товара
Пользователь оффлайн Распечатать
 

12.11.2017 01:34

support


Support


Количество сообщений   1199
Зарегистрирован:   11-04-2008, 19:11:57
Экспорт типа товара
Цитата
Написал: xlvetal
Что бы выгружало еще и столбец тип товара


Добавьте строку

(SELECT GT_NAME FROM TBL_GOODS_TYPES gt WHERE gt.GT_ID = g.G_GT_ID) as goodtype

чтобы было так:

Код

SET NOCOUNT ON;
DECLARE @TBL_PROPS TABLE (G_ID int, PROPS varchar(max));
DECLARE @G_ID int, @P_NAME varchar(200), @PG_NAME varchar(200), @GP_VALUE varchar(max);
DECLARE @PROPS nvarchar(max);
DECLARE cGoods CURSOR FOR
SELECT G_ID
FROM TBL_GOODS;

OPEN cGoods;
FETCH NEXT FROM cGoods INTO @G_ID;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
SET @PROPS = '';

DECLARE cProps CURSOR FOR
SELECT DISTINCT ISNULL(GP_VALUE, ''), P_NAME, ISNULL(PG_NAME, '')
FROM TBL_GOODS_PROPS
INNER JOIN TBL_PROPS ON GP_P_ID = P_ID
LEFT OUTER JOIN TBL_PROPS_GROUPS ON P_PG_ID = PG_ID
WHERE GP_G_ID = @G_ID;

OPEN cProps;
FETCH NEXT FROM cProps INTO @GP_VALUE, @P_NAME, @PG_NAME;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF @GP_VALUE <> ''
BEGIN
IF @PG_NAME <> ''
SET @PROPS = @PROPS + 'list/' + @PG_NAME + ';';
SET @PROPS = @PROPS + @P_NAME + ':';
SET @PROPS = @PROPS + @GP_VALUE + '|';
END;
FETCH NEXT FROM cProps INTO @GP_VALUE, @P_NAME, @PG_NAME;
END
CLOSE cProps;
DEALLOCATE cProps;
INSERT INTO @TBL_PROPS(G_ID, PROPS) VALUES (@G_ID, @PROPS);
FETCH NEXT FROM cGoods INTO @G_ID;
END;
CLOSE cGoods;
DEALLOCATE cGoods;

SELECT
g.G_ID as product_id,
g.G_SID as ean,
g.G_NAME as name,
g.G_DESC as short_description,
g.G_DESC_FULL as description,
g.G_REST as qty,
CASE WHEN g.G_PRESENT > 0 THEN '&#228;&#224;' ELSE '&#237;&#229;&#242;' END as unlimited,
CASE WHEN g.G_ACTIVE > 0 THEN '&#228;&#224;' ELSE '&#237;&#229;&#242;' END as publish,
REPLACE(gr.GR_FULL_NAME, '\', '/') as category,
REPLACE(LTRIM(STR(g.price, 10, 2)), '.', ','),
(SELECT B_NAME FROM TBL_BRANDS b WHERE b.B_ID = g.G_B_ID) as manufacturer,
(SELECT GT_NAME FROM TBL_GOODS_TYPES gt WHERE gt.GT_ID = g.G_GT_ID) as goodtype,
CASE WHEN g.G_ACTION > 0 THEN '&#228;&#224;' ELSE '&#237;&#229;&#242;' END as label,
p.PROPS as extra_fields
FROM TBL_GOODS g, TBL_GROUPS gr, @TBL_PROPS p
WHERE g.G_GR_ID = gr.GR_ID
and g.G_ID = p.G_ID
;
Пользователь оффлайн Распечатать
 

18.11.2017 09:55

xlvetal


Посетитель

Тема начата

Количество сообщений   124
Зарегистрирован:   14-11-2015, 14:23:25
Перестали нормально отображаться unlimited, publish,label



Прикрепленные файлы
экспорт.JPG   ( 3 Просмотров | 356.1 KB )
Пользователь оффлайн Распечатать
 

18.11.2017 14:13

support


Support


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

18.11.2017 14:15

xlvetal


Посетитель

Тема начата

Количество сообщений   124
Зарегистрирован:   14-11-2015, 14:23:25
Можете сделать тогда SQL запрос что бы все нормально работало?
Пользователь оффлайн Распечатать
 

18.11.2017 14:53

support


Support


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

19.11.2017 08:02

xlvetal


Посетитель

Тема начата

Количество сообщений   124
Зарегистрирован:   14-11-2015, 14:23:25
Нужен SQL запрос на экспорт всех товаров из справочника товаров в Excel, в котором выгружается колонки: код, наименование, наличие,активность, бренд, артикул,цена продажи 1,тип товара,группа товара.
Пользователь оффлайн Распечатать
 

19.11.2017 13:46

support


Support


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

Цитата
Написал: xlvetal
Нужен SQL запрос на экспорт всех товаров из справочника товаров в Excel, в котором выгружается колонки: код, наименование, наличие,активность, бренд, артикул,цена продажи 1,тип товара,группа товара.


Такой запрос экспорта будет выглядеть приблизительно так:
Код

SELECT
g.G_ID as "код",
g.G_NAME as "наименование",
g.G_PRESENT as "наличие",
g.G_ACTIVE as "активность",
b.B_NAME as "бренд",
g.G_SID as "артикул",
g.price as "цена продажи 1",
gt.GT_NAME as "тип товара",
gr.GR_NAME as "группа товара"
FROM
TBL_GOODS g
INNER JOIN TBL_GROUPS gr on g.G_GR_ID = gr.GR_ID
LEFT OUTER JOIN TBL_BRANDS b on g.G_B_ID = b.B_ID
LEFT OUTER JOIN TBL_GOODS_TYPES gt on g.G_GT_ID = gt.GT_ID

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

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

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


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