Transpose Query Help

You can also use a cross-tab approach:


;WITH cte_data AS (
    SELECT *, ROW_NUMBER() OVER(PARTITION BY Company, worklocation ORDER BY Category) AS row_num 
	FROM #TableData
)
SELECT Company, worklocation,
    MAX(CASE WHEN row_num = 1 THEN Category ELSE '' END) AS [Category 1],
    MAX(CASE WHEN row_num = 1 THEN Setup ELSE '' END) AS [Setup 1],
    MAX(CASE WHEN row_num = 1 THEN Processing ELSE '' END) AS [Processing 1],
    MAX(CASE WHEN row_num = 2 THEN Category ELSE '' END) AS [Category 2],
    MAX(CASE WHEN row_num = 2 THEN Setup ELSE '' END) AS [Setup 2],
    MAX(CASE WHEN row_num = 2 THEN Processing ELSE '' END) AS [Processing 2],
    MAX(CASE WHEN row_num = 3 THEN Category ELSE '' END) AS [Category 3],
    MAX(CASE WHEN row_num = 3 THEN Setup ELSE '' END) AS [Setup 3],
    MAX(CASE WHEN row_num = 3 THEN Processing ELSE '' END) AS [Processing 3]
    /*, ...*/
FROM cte_data
GROUP BY Company, worklocation
2 Likes