Pivotement de plusieurs colonnes dans SQL Server
Le pivotement est une technique de transformation dans SQL qui permet d'organiser les données des colonnes en lignes. Dans ce contexte, vous souhaitez faire pivoter la colonne de catégorie en lignes et afficher les ventes, les stocks et les valeurs cibles pour chaque catégorie.
Exemple d'entrée :
Branch Category Sales Stock Target Branch1 Panel 100 20 30 Branch1 AC 120 30 40 Branch1 Ref 150 40 50
Désiré Sortie :
Branch | Panel | AC | Ref |
---|---|---|---|
Branch1 | 100 | 120 | 150 |
Branch1 | 20 | 30 | 40 |
Branch1 | 30 | 40 | 50 |
Solution :
Pour obtenir le résultat souhaité, vous devez effectuer plusieurs opérations de pivotement :
SELECT * FROM ( SELECT Branch, Category, Category+'1' As Category1, Category+'2' As Category2, Sales, Stock, Target FROM TblPivot ) AS P -- For Sales PIVOT ( SUM(Sales) FOR Category IN ([Panel], [AC], [Ref]) ) AS pv1 -- For Stock PIVOT ( SUM(Stock) FOR Category1 IN ([Panel1], [AC1], [Ref1]) ) AS pv2 -- For Target PIVOT ( SUM(Target) FOR Category2 IN ([Panel2], [AC2], [Ref2]) ) AS pv3
Remarque :
De plus, vous pouvez utiliser des fonctions d'agrégation sur pv3 pour résumer davantage les données si nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!