J'ai une longue question que je vais résumer comme:
SELECT Name, Type, Rev From Table
Cela renvoie quelque chose comme:
Name Type Checked Bob Grp1 Frank Bob Grp2 Frank Bob Grp3 Frank Lisa Grp1 Sarah Lisa Grp3 Sarah
Maintenant, puisque j'ai jusqu'à 3 types, j'aimerais qu'ils soient leurs propres colonnes et voient les valeurs dans la 3ème colonne apparaître sous chaque type:
Par exemple:
Name Grp1 Grp2 Grp3 Bob Frank Frank Frank Lisa Sarah NULL Sarah
Fondamentalement, je suis à la search d'une requête sur la façon de le faire. Tout commentaire serait apprécié.
Échantillon rapide
Select * From YourTable Pivot (max(Checked) for Type in ([Grp1],[Grp2],[Grp3])) P
Modifier – Si vous avez plus que les champs affichés
Select * From ( SELECT Name, Type, Checked From Table ) A Pivot (max(Checked) for Type in ([Grp1],[Grp2],[Grp3])) P
J'utilise habituellement une instruction CASE comme ceci:
select Name, case Type when 'Grp1' then checked else null end as 'Grp1', case Type when 'Grp2' then checked else null end as 'Grp2', case Type when 'Grp2' then checked else null end as 'Grp3' from table