У меня есть скрипт ниже, но выдает ошибку, утверждающую, что @currentsupplierno не определен.@currentsupplierno
имеет проблему - это ошибка в запросе select from
в @query
части скрипта.
Когда я запускаю скриптЯ хотел добиться ниже.(Да, оба вывода с заголовком, потому что мои товарищи по команде должны копировать вывод отдельно, а не как одну таблицу.) Надеюсь, это вас не смущает.Я довольно новичок в SQL.
Кроме того, число поставщиков может увеличиться, поэтому оно не фиксировано для следующих двух.Добавьте к этому, я сохранил все номера поставщиков в массиве (потому что это супер вход), который используется для дальнейшей фильтрации таблицы, содержащей идентификаторы SupplierName, PeriodID и CalculatedDollars в приведенных ниже примерах данных.
с использованием приведенных ниже образцов данных:
while exists (select SupplierNo from @supplier)
BEGIN
declare @currentsupplierno int
select top 1 @currentSupplierno = SupplierNo
from @supplier
order by supplierNo ASC
declare @col nvarchar(max)
declare @query nvarchar(max)
select @col = STUFF(
(select distinct ',', quotename(periodID)
from #WeeklySales
order by 1,2
for xml path (''), type).value('.', 'nvarchar(max)'),1,1,'')
set @query = 'select SupplierNo,SupplierName,' + @col + '
into #WeeklySales
from (select SupplierNo,SupplierName, periodID, CalculatedDollars from #WeeklySales WHERE supplierno = @currentsupplierno) sq pivot (sum(CalculatedDOLLARS) for periodID IN (' + @col + ')) pt'
print @query
execute (@query)
delete from @supplier where supplierno = @currentsupplierno
end