Digamos que tengo algunos datos, ya sea en una tabla de SQL Server 2008 o una [Tabla] variable de -typed:El uso de PIVOT en SQL Server 2008
author_id review_id question_id answer_id
88540 99001 1 719
88540 99001 2 720
88540 99001 3 721
88540 99001 4 722
88540 99001 5 723
36414 24336 1 302
36414 24336 2 303
36414 24336 3 304
36414 24336 4 305
36414 24336 5 306
que desea recuperar los datos como un conjunto de resultados que se se ve así:
author_id review_id 1 2 3 4 5
88540 99001 719 720 721 722 723
36414 24336 302 303 304 305 306
sospecho que el operador PIVOT es lo que necesito (según this post, de todos modos), pero no puedo encontrar la manera de empezar a trabajar, sobre todo cuando el número de question_id filas la mesa puede variar En el ejemplo anterior, es 5, pero en otra consulta la tabla puede estar poblada con 7 preguntas distintas.
Esto parece ser lo que necesito. Le daré una oportunidad e informaré, ¡gracias! –
Tenga en cuenta la subconsulta. Si solo usa "SELECT * FROM YourTable", cualquier otra columna involucrada afectará la agrupación implícita que proporciona la función PIVOT. Y si tiene algún error, comente la línea 'exec', sustituyéndola por' select @ qry' –
Nunca más uso [SELECT *] - siempre declaro explícitamente las columnas a las que accedo - por lo que no será un problema. Y sí, estaba usando [select @qry] por un tiempo para poder ver/depurar la sentencia SQL de generación antes de que se ejecutara. Tu código funcionó como lo prometiste, ¡muchas gracias por tu ayuda! –