Heim >Datenbank >MySQL-Tutorial >Wie kann ich in SQL Server mehrere Spalten (Umsatz, Lagerbestand, Ziel) gleichzeitig drehen?

Wie kann ich in SQL Server mehrere Spalten (Umsatz, Lagerbestand, Ziel) gleichzeitig drehen?

Susan Sarandon
Susan SarandonOriginal
2025-01-02 13:40:38153Durchsuche

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

So Pivotieren mehrerer Spalten in SQL Server

Problem:

Angenommen, Sie haben eine Tabelle mit Spalten, die Artikelkategorien darstellen (z. B. Panel, AC, Ref) und Daten wie Verkäufe, Lagerbestand und Ziel. Sie möchten diese Daten in ein Pivot-Format umwandeln, in dem die Kategorien zu Zeilen werden und die Spalten die jeweiligen Daten für jede Kategorie (Umsatz, Lagerbestand, Ziel) enthalten.

Lösung:

Um dies zu erreichen, können Sie mehrere Pivot-Anweisungen in SQL verwenden Server:

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

Erläuterung:

  1. Inner SELECT: Rufen Sie die erforderlichen Daten aus der Originaltabelle ab, einschließlich des Filialnamens und unbereinigte Kategorienamen.
  2. Spaltenumbenennung: Umbenennen die Kategoriespalten mit Suffixen ('1' und '2'), um das spätere Pivotieren zu erleichtern.
  3. Erster Pivot (pv1): Pivot für die Verkaufsspalte, Gruppierung der Daten nach Kategorie.
  4. Zweiter Pivot (pv2): Pivot für die Aktienspalte unter Verwendung der neu umbenannten Kategoriespalten (z. B. Panel1).
  5. Dritter Pivot (pv3): Pivot für die Zielspalte unter Verwendung der neu umbenannten Kategoriespalten (z. B. Panel2).

Sobald die Pivotierung abgeschlossen ist, können Sie die Ergebnisse aggregieren oder bei Bedarf weitere Datenmanipulationen durchführen.

Das obige ist der detaillierte Inhalt vonWie kann ich in SQL Server mehrere Spalten (Umsatz, Lagerbestand, Ziel) gleichzeitig drehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn