Tabla dinámica de server SQL Server

Encontré una buena secuencia de commands que crea dinámicamente por nombres de columna para mi tabla dinámica, pero no estoy volviendo a get los valores asignados en la tabla. Aquí está mi table de inicio.

ORDER_ID DSC_NAME NAME ----------- --------------- ----------- 2 34-1500-XXX DWG_DOC 3 C0403 EQIP_1 4 C4054 EQIP_2 1 34-1500-013 PART 0 88-0000 PRCS 

Ejecuto este SQL para generar mis columnas que quiero en mi tabla dinámica

 DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); select @cols = STUFF((SELECT distinct ',' + QUOTENAME(NAME) FROM test FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') 

Esto me da la siguiente salida

 [DWG_DOC],[EQIP_1],[EQIP_2],[PART],[PRCS] 

Cuando ejecuto el SQL dynamic para la tabla dinámica

 SET @query = 'SELECT ' + @cols + ' from ( SELECT ORDER_ID,DSC_NAME FROM test ) x pivot ( MIN(ORDER_ID) for DSC_NAME in (' + @cols + ') ) p ' execute(@query) 

Veo este resultado …

 DWG_DOC EQIP_1 EQIP_2 PART PRCS ----------- ----------- ----------- ----------- ----------- NULL NULL NULL NULL NULL 

He intentado varias opciones diferentes, pero no se me ocurre una solución a por qué esto no funciona.

La salida deseada sería donde la order de la columna es correcta por el ORDER_ID

 PRCS PART DWG_DOC EQIP_1 EQIP_2 ---------- -------------- -------------- --------- --------- 88-0000 34-1500-013 34-1500-XXX C0403 C4054 

Pero esto también funcionaría mi aplicación también.

 DWG_DOC EQIP_1 EQIP_2 PART PRCS -------------- --------- --------- -------------- ----------- 34-1500-XXX C0403 C4054 34-1500-013 88-0000 

Elimine ORDER_ID de la selección y select el name la columna:

 SET @query = 'SELECT ' + @cols + ' from ( SELECT ORDER_ID, DSC_NAME -- <--- you didn't select the name here FROM test ) x pivot ( MIN(ORDER_ID) for DSC_NAME in (' + @cols + ') ) p ' 

Y use MAX(DSC_Name) lugar de MIN(ORDER_ID) . Me gusta esto:

 SET @query = 'SELECT '+ @cols + ' from ( SELECT DSC_NAME, Name FROM test ) x pivot ( MAX(DSC_Name) for NAME in (' + @cols + ') ) p '; 

Demostración de SQL Fiddle

Esto te dará:

 | DWG_DOC | EQIP_1 | EQIP_2 | PART | PRCS | --------------------------------------------------------- | 34-1500-XXX | C0403 | C4054 | 34-1500-013 | 88-0000 |