Autor Wątek: Dynamiczny PIVOT jako zestawienie w Subiekcie GT  (Przeczytany 784 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline grzesiobe

  • Nowy użytkownik
  • *
  • Wiadomości: 10
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.26 SP1
Dynamiczny PIVOT jako zestawienie w Subiekcie GT
« dnia: Maj 15, 2026, 21:22:08 »
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;

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17302
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Daniel, Białystok.

Odp: Dynamiczny PIVOT jako zestawienie w Subiekcie GT
« Odpowiedź #1 dnia: Maj 17, 2026, 14:43:00 »