Witam
Zrobiłem zestawienie z dynamicznym PIVOT i chciałbym umieścić je w zestawieniach subiekta. Pokazuje listę asortymentów dla każdego kontrahenta z dokumentów WZ. Czy jest to możliwe? Oto skrypt:
DECLARE @Columns NVARCHAR(MAX), @SQL NVARCHAR(MAX);
-- 1. Pobieramy unikalne wartości dla kolumn (np. lata)
SELECT @Columns = COALESCE(@Columns + ', ', '') + QUOTENAME(kh_Symbol)
FROM (
SELECT DISTINCT kh_Symbol
FROM vwZstWydWgKhnt, kh__Kontrahent
WHERE dok_DataWyst BETWEEN '2026-05-15' AND '2026-05-15'
AND dok_OdbiorcaId = kh_Id
) AS T
ORDER BY kh_Symbol;
-- 2. Budujemy pełne zapytanie tekstowe
SET @SQL = '
SELECT * FROM (
SELECT kh_Symbol, tw_Nazwa ''Asortyment'', ob_IloscMag
FROM vwZstWydWgKhnt, tw__Towar, kh__Kontrahent
WHERE dok_DataWyst BETWEEN ''2026-05-15'' AND ''2026-05-15''
AND ob_TowId = tw_Id AND dok_OdbiorcaId = kh_Id
) t
PIVOT (
SUM(ob_IloscMag)
FOR kh_Symbol IN (' + @Columns + ')
) AS p ORDER BY Asortyment';
-- 3. Wykonujemy dynamiczny kod
EXEC sp_executesql @SQL;