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 le nombre de groupa est fixe, la requête ci-dessus fonctionnera.
Edit :Utilisation du pivot
select * from
(select name, id , groupa from tablename)
pivot xml (
max(groupa) for groupa in
(select distinct groupa from tablename)
)
Merci pour la solution. J'y suis presque. C'est ce que j'obtiens après avoir exécuté cette requête. En fait, il y a 53 GROUPES différents, donc cela ajoute 53 colonnes, mais le nombre maximum de groupes attribués à un utilisateur est de 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
Comment puis-je obtenir des résultats comme celui-ci...
NAME ID GROUP_1 GROUP_2 GROUP_3
James 20 A H
Michael 30 A B E
Comment puis-je obtenir mon résultat comme je l'ai mentionné dans la question ? Merci,