Maison >base de données >tutoriel mysql >Comment faire pivoter plusieurs colonnes dans SQL Server à l'aide de plusieurs instructions PIVOT ?

Comment faire pivoter plusieurs colonnes dans SQL Server à l'aide de plusieurs instructions PIVOT ?

DDD
DDDoriginal
2025-01-03 16:55:41851parcourir

How to Pivot Multiple Columns in SQL Server Using Multiple PIVOT Statements?

Pivotement de plusieurs colonnes dans SQL Server

Dans une table de base de données où les données sont organisées en lignes et en colonnes, il devient parfois nécessaire de transformer la structure de la table en changeant de ligne avec colonnes. Cette technique est connue sous le nom de pivotement.

Scénario :

Vous disposez d'un exemple de tableau avec des colonnes telles que Branche, Catégorie, Ventes, Stock et Cible. Vous souhaitez faire pivoter le tableau à l'aide de la colonne Catégorie et organiser les colonnes restantes (Ventes, Stock, Cible) sous forme de lignes. La sortie souhaitée doit avoir des catégories sous forme de colonnes et des valeurs sous forme de lignes.

Solution :

Pour faire pivoter le tableau, vous pouvez utiliser plusieurs instructions PIVOT avec des modifications de nom de colonne appropriées :

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

En modifiant les noms des colonnes (par exemple, Catégorie « 1 » et Catégorie « 2 »), vous pouvez vous assurer que le Les instructions PIVOT fonctionnent correctement.

Les tableaux intermédiaires (pv1, pv2, pv3) fourniront respectivement les données pivotées pour les ventes, le stock et la cible. Vous pouvez ensuite agréger les résultats de pv3 pour regrouper et additionner les valeurs selon vos besoins.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn