select name,id,
max(case when groupa = 'A' then groupa end) as group1,
max(case when groupa = 'B' then groupa end) as group2,
max( case when groupa = 'C' then groupa end) as group3
from tablename
group by name, id
si el número de grupos es fijo, la consulta anterior funcionaría.
Editar:Usando pivote
select * from
(select name, id , groupa from tablename)
pivot xml (
max(groupa) for groupa in
(select distinct groupa from tablename)
)
Gracias por la solución. Ya casi estoy allí. Esto es lo que obtengo después de ejecutar esta consulta. En realidad, hay 53 GRUPOS diferentes, por lo que se agregan 53 columnas, pero el número máximo de grupos asignados a un usuario es 5.
NAME ID A B C D E F G H
James 20 A null null null null null null H
Michael 30 A B null null E null null null
¿Cómo obtengo resultados como este...
NAME ID GROUP_1 GROUP_2 GROUP_3
James 20 A H
Michael 30 A B E
¿Cómo obtengo mi resultado como mencioné en la pregunta?Gracias,