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
Freigeben: 2024-12-31 18:21:12
Original
193 Leute haben es durchsucht

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
Nach dem Login kopieren

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  |
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage