I am going to explain the same scenario and the resolution for the same, but you need to read original post properly. So requesting you to read it first if you did not read. So whenever we add new color values in table, the same pivot query does not return information about the new values. So let us add new value and prepare the query and run,
-- Inserting one more record in existing table created in earlier post
INSERT INTO TblPivot
(
ItemCode,
ItemName,
ItemColour
)
SELECT
6,
'Samsung Mobile',
'Silver'
DECLARE @ColourColumn varchar(200)
DECLARE @sql varchar(1000)
CREATE TABLE #Colours
(
Colour varchar(500)
)
INSERT INTO #Colours (Colour)
SELECT
DISTINCT '[' + ItemColour + ']'
FROM TblPivot
-- Creating Column Names for Pivot
SELECT @ColourColumn = COALESCE(@ColourColumn + ',', '') +
Colour
FROM #Colours
/*
--OR
SET @ColourColumn = (SELECT SUBSTRING(
(SELECT DISTINCT ',' + Colour
FROM #Colours
FOR XML PATH('')),2,200000)
)
*/
DROP TABLE #Colours
SET @sql =
'
SELECT
*
FROM
(
SELECT
ItemCode,
ItemName,
ItemColour
FROM TblPivot
) AS P
PIVOT
(
Count(ItemName) FOR ItemColour IN ('+@ColourColumn+')
) AS pv
'
EXEC (@sql)
I want you to share your ideas for such issues which you faced and the resolutions for the same.