Maison >base de données >tutoriel mysql >Comment faire pivoter plusieurs colonnes (ventes, stock, cible) simultanément dans SQL Server ?

Comment faire pivoter plusieurs colonnes (ventes, stock, cible) simultanément dans SQL Server ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-02 13:40:38153parcourir

How to Pivot Multiple Columns (Sales, Stock, Target) Simultaneously in SQL Server?

Comment faire pivoter plusieurs colonnes dans SQL Server

Problème :

Supposons que vous ayez un tableau avec des colonnes représentant les catégories d'articles (par exemple, Panel, AC, Ref) et des données telles que les ventes, le stock et l'objectif. Vous souhaitez transformer ces données dans un format croisé où les catégories deviennent des lignes et les colonnes contiennent les données respectives pour chaque catégorie (ventes, stock, cible).

Solution :

Pour y parvenir, vous pouvez utiliser plusieurs instructions pivot dans SQL Serveur :

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

Explication :

  1. SELECT interne : Récupérez les données nécessaires de la table d'origine, y compris le nom de la branche et les noms de catégories non désinfectés.
  2. Renommer la colonne : Renommer la catégorie colonnes avec suffixes ('1' et '2') pour faciliter le pivotement ultérieur.
  3. Premier pivot (pv1) : Pivot pour la colonne des ventes, regroupant les données par catégorie.
  4. Deuxième pivot (pv2) : Pivot pour la colonne de stock en utilisant les colonnes de catégorie nouvellement renommées (par exemple, Panel1).
  5. Troisième pivot (pv3) : Pivotez pour la colonne cible en utilisant les colonnes de catégorie nouvellement renommées (par exemple, Panel2).

Une fois le pivotement terminé, vous pouvez agréger les résultats ou effectuer d'autres manipulations de 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!

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