Heim >Datenbank >MySQL-Tutorial >Wie kann man in SQL Server mehrere Spalten für eine optimale Datenpräsentation schwenken?

Wie kann man in SQL Server mehrere Spalten für eine optimale Datenpräsentation schwenken?

Susan Sarandon
Susan SarandonOriginal
2024-12-31 18:21:12203Durchsuche

How to Pivot Multiple Columns in SQL Server for Optimal Data Presentation?

Pivotieren mehrerer Spalten in SQL Server für eine optimale Datendarstellung

Bei der Arbeit mit relationalen Datenbanken können Pivottabellen eine effektive Möglichkeit sein, Daten umzuformen zur einfacheren Analyse und Visualisierung. In SQL Server kann diese Technik besonders nützlich sein, wenn Sie mit Tabellen arbeiten, die mehrere Spalten haben, die Sie als Zeilen anzeigen möchten.

Problemstellung:

Betrachten Sie das folgende Beispiel Tabelle:

Branch  | Category | Sales | Stock  | Target
------- | ******** | ----- | ----- | -------
Branch1 | Panel    | 100   | 200   | 300
Branch1 | AC       | 150   | 250   | 350
Branch1 | Ref      | 200   | 300   | 400

Das Ziel besteht darin, die Spalte „Kategorie“ zu drehen und die Spalten „Verkäufe“, „Bestand“ und „Ziel“ als Zeilen anzuzeigen, was Folgendes ergibt Ausgabe:

Branch  | Panel | AC   | Ref  |
------- | ------ | -- | ---- |
Branch1 | 100   | 150 | 200  |

Lösung:

Um die gewünschte Ausgabe zu erzielen, können wir eine Reihe von Pivot-Anweisungen in SQL Server verwenden. Der Schlüssel besteht darin, die Spalten in den Pivot-Zwischenergebnissen umzubenennen, um sie auf den nachfolgenden Pivot-Vorgang vorzubereiten.

Beachten Sie den folgenden Code:

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

Dieser Code führt die folgenden Schritte aus:

  1. Bereiten Sie die Daten vor: Die Kategoriespalte wird umbenannt und zwei zusätzliche Spalten, Kategorie1 und Kategorie2, hinzugefügt erleichtern die nachfolgenden Pivots.
  2. Pivot für Verkäufe: Die erste Pivot-Anweisung erstellt die pv1-Tabelle, die die Verkäufe für jede Kategorie summiert.
  3. Pivot für Lagerbestände : Die zweite Pivot-Anweisung erstellt die pv2-Tabelle, die jeweils den Bestand summiert Kategorie.
  4. Pivot für Ziel: Die dritte Pivot-Anweisung erstellt die pv3-Tabelle, die das Ziel für jede Kategorie summiert.

Die resultierende pv3-Tabelle enthält die gewünschte Ausgabe, wobei die Kategorien als Zeilen und die Spalten die Verkaufs-, Lager- und Zielwerte darstellen.

Das obige ist der detaillierte Inhalt vonWie kann man in SQL Server mehrere Spalten für eine optimale Datenpräsentation schwenken?. 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