Maison > base de données > tutoriel mysql > Comment faire pivoter plusieurs colonnes simultanément dans SQL Server ?

Comment faire pivoter plusieurs colonnes simultanément dans SQL Server ?

Susan Sarandon
Libérer: 2024-12-31 09:29:09
original
926 Les gens l'ont consulté

How to Pivot Multiple Columns Simultaneously in SQL Server?

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
Copier après la connexion

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
Copier après la connexion

Remarque :

  • La première sous-requête attribue de nouveaux noms à la catégorie colonne avec Category1 et Category2 pour préparer plusieurs pivots.
  • Les opérations de pivot ultérieures utilisent ces noms de colonnes étendus pour créer des lignes pour chaque catégorie.
  • Des agrégations sont appliquées aux colonnes pour résumer les valeurs de chacune. catégorie.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal