Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment pivoter en SQL

Avez-vous lu la documentation sur PIVOT dans Microsoft SQL Server 2005 ?

SELECT CustId, 
  [1] AS Admin,
  [2] AS Manager,
  [3] AS Support,
  [4] AS Assistant
FROM (SELECT c.CustId, r.RoleId
FROM CustomerRoles c JOIN Roles r USING (RoleId)) AS s
PIVOT (
 COUNT(CustId)
 FOR RoleId IN ([1], [2], [3], [4])
) AS pvt
ORDER BY CustId;

Je n'ai pas testé ce qui précède, mais je me suis basé sur la doc. Cela peut vous aider à démarrer.

Il ne semble pas y avoir de moyen de générer dynamiquement les colonnes. Vous devez les coder en dur.