Сводный прайс с минимальными ценами поставщиков
Можно автоматически получить список всех поставщиков, чьи цены учитываются и список активной номенклатуры из справочника товаров и сформировать из них "матрицу", а в соответствующие ячейки внести минимальную цену для поставщика и номенклатуры.
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
|