DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName = ISNULL(@ColumnName + ',','')+ QUOTENAME(Descriptionitem) FROM (SELECT DISTINCT [Descriptionitem] FROM ItemMasterFile) AS [NAME]
DECLARE @ColumnForSum AS NVARCHAR(MAX)
SELECT @ColumnForSum = REPLACE(@ColumnName,',','+')
SELECT @ColumnForSum = REPLACE(@ColumnForSum,'[','ISNULL([')
SELECT @ColumnForSum = REPLACE(@ColumnForSum,']','],0)')
SET @DynamicPivotQuery = 'SELECT ROW_NUMBER() OVER (ORDER BY(SELECT 0)) IDwokrer
, PersonName,'+@ColumnName+'
,SUM('+@ColumnForSum+') Summa
FROM (
SELECT SUM(s.prdqty) Qty,p.Namworker as PersonName,f.Descriptionitem as Item
from Probale s
INNER JOIN Worker p ON s.IDwokrer= p.IDwokrer
INNER JOIN ItemMasterFile f ON s.Codeitem= f.Codeitem
GROUP BY p.Namworker ,f.Descriptionitem )t
pivot
(
MAX([Qty]) FOR Item IN ('+@ColumnName+')
) piv GROUP BY PersonName,'+@ColumnName+''
EXEC (@DynamicPivotQuery)
please guided