CREATE PROCEDURE [dbo].[PivotTimkat] @CUST nvarchar(25)
AS
DECLARE @ColumnNames NVARCHAR(MAX);
SELECT @ColumnNames = COALESCE(@ColumnNames + ', ', '') + QUOTENAME(IMNIA_APO)
FROM (SELECT DISTINCT TOP 5 TIMKATID,IMNIA_APO FROM TIMKAT_MASTER WHERE KOD_PEL=@CUST ORDER BY TIMKATID DESC) AS TIMOKATALOGOI;
-- Create the dynamic pivot query
DECLARE @DynamicPivotQuery NVARCHAR(MAX);
SET @DynamicPivotQuery = N'SELECT PERGR, ' + @ColumnNames + '
FROM (SELECT IMNIA_APO, PERGR, TIMI FROM TIMKAT_MASTER INNER JOIN TIMKAT_EIDH
ON TIMKAT_MASTER.TIMKATID = TIMKAT_EIDH.TIMKATID WHERE KOD_PEL=''' + @CUST + ''') AS SourceData
PIVOT (SUM(TIMI) FOR IMNIA_APO IN (' + @ColumnNames + ')) AS PivotTable;';
-- Execute the dynamic pivot query
EXEC sp_executesql @DynamicPivotQuery;
GO