Hi velm@pns,
I have created a sample which full fill your requirement.
Refer below SQL Query
SQL
CREATE TABLE #Products(Product VARCHAR(5),Months VARCHAR(5),[VALUES] INT)
INSERT INTO #Products VALUES('A','APR',5)
INSERT INTO #Products VALUES('A','APR',9)
INSERT INTO #Products VALUES('B','APR',8)
INSERT INTO #Products VALUES('A','MAY',7)
INSERT INTO #Products VALUES('B','MAY',5)
INSERT INTO #Products VALUES('C','MAY',5)
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
SELECT @ColumnName = ISNULL(@ColumnName + ',','')+ QUOTENAME([Months]) FROM (SELECT DISTINCT [Months] FROM #Products) AS [Months]
SET @DynamicPivotQuery = ';WITH CTE AS(SELECT [Product],Months,[VALUES] FROM #Products)
SELECT Product,' + @ColumnName + ' FROM CTE
PIVOT (SUM([VALUES]) FOR [Months] IN(' + @ColumnName + ')) p'
EXEC(@DynamicPivotQuery)
OutPut
Product |
APR |
MAY |
A |
14 |
7 |
B |
8 |
5 |
C |
NULL |
5 |