Сводный прайс с артикулами поставщиков
Экспорт матрицы (аналогичной сводному прайс-листу) с артикулами поставщиков вы можете сделать при помощи следующего 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-запросе, если к товару каталога привязано несколько товаров одного и того же поставщика (такое бывает, если появляется аналогичная модель но с каким-то усовершенствованием и т.п. но в прайсе идет как отдельный товар), то будет взят артикул последнего добавленного товара поставщика.
|