Добро пожаловать, Гость. Для того, чтобы отвечать на сообщения и создавать новые темы, Вам необходимо зарегистрироваться, если Вы уже зарегистрированы, то войдите используя Ваши E-Mail и Пароль.
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 'äà' ELSE 'íåò' END as unlimited,
CASE WHEN g.G_ACTIVE > 0 THEN 'äà' ELSE 'íåò' 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 'äà' ELSE 'íåò' 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
;
Количество сообщений
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 'äà' ELSE 'íåò' END as unlimited,
CASE WHEN g.G_ACTIVE > 0 THEN 'äà' ELSE 'íåò' 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 'äà' ELSE 'íåò' 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
;
Количество сообщений
1199
Зарегистрирован:
11-04-2008, 19:11:57
Что именно сделать? Мы изменили тот запрос, который предоставили вы сами. Сравните тот который вы дали в первом посте, и тот который изменен согласно вашей заявки.
Количество сообщений
124
Зарегистрирован:
14-11-2015, 14:23:25
Нужен SQL запрос на экспорт всех товаров из справочника товаров в Excel, в котором выгружается колонки: код, наименование, наличие,активность, бренд, артикул,цена продажи 1,тип товара,группа товара.
Количество сообщений
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