Программа iNETsHOP - обработка, сравнение, анализ прайс листов поставщиков, создание каталога товаров интернет магазина Форум - Программа iNETsHOP - Работа с программой - Как создать сводный прайс-лист?


http://inetshop.in.ua/index.php?p=showtopic&toid=279&pp=15&page=1&area=1&print_post=1598
09.12.2015 23:51

support


Support


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

SQL-запрос на формирование списка товаров в таком виде можно составить приблизительно так (для версии MS SQL 2005 и выше):
Код

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 + ', sp.S_NAME 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 MIN(sg.price) 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) + ') AS "' + @S_NAME + '"';
FETCH NEXT FROM cSuppliers INTO @S_ID, @S_NAME;
END;
CLOSE cSuppliers;
DEALLOCATE cSuppliers;
SET @SQL = @SQL + ' FROM TBL_GOODS g LEFT OUTER JOIN TBL_SUPPLIERS sp on sp.S_ID = g.G_S_ID WHERE g.G_ACTIVE=1 AND g.G_PRESENT=1';

exec sp_executesql @SQL;


Вот пример как настроить экспорт данных в csv/xls