Maison >base de données >tutoriel mysql >Comment faire pivoter plusieurs colonnes dans SQL Server pour une présentation optimale des données ?
Pivoter plusieurs colonnes dans SQL Server pour une présentation optimale des données
Lorsque vous travaillez avec des bases de données relationnelles, les tableaux croisés dynamiques peuvent être un moyen efficace de remodeler les données pour une analyse et une visualisation plus faciles. Dans SQL Server, cette technique peut être particulièrement utile lorsqu'il s'agit de tables comportant plusieurs colonnes que vous souhaitez afficher sous forme de lignes.
Énoncé du problème :
Considérez l'exemple suivant table :
Branch | Category | Sales | Stock | Target ------- | ******** | ----- | ----- | ------- Branch1 | Panel | 100 | 200 | 300 Branch1 | AC | 150 | 250 | 350 Branch1 | Ref | 200 | 300 | 400
L'objectif est de faire pivoter la colonne Catégorie et d'afficher les colonnes Ventes, Stock et Cible sous forme de lignes, ce qui donne ce qui suit sortie :
Branch | Panel | AC | Ref | ------- | ------ | -- | ---- | Branch1 | 100 | 150 | 200 |
Solution :
Pour obtenir le résultat souhaité, nous pouvons utiliser une série d'instructions pivot dans SQL Server. La clé est de renommer les colonnes dans les résultats du pivot intermédiaire pour préparer l'opération de pivot suivante.
Considérez le code suivant :
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 GO
Ce code exécute les étapes suivantes :
Le tableau pv3 résultant contient la résultat souhaité, avec les catégories sous forme de lignes et les colonnes représentant les ventes, le stock et les valeurs cibles.
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!