In einer Datenbanktabelle, in der Daten in Zeilen und Spalten angeordnet sind, ist es manchmal erforderlich, die Tabellenstruktur durch Vertauschen der Zeilen mit zu transformieren Spalten. Diese Technik wird als Pivotieren bezeichnet.
Szenario:
Sie haben eine Beispieltabelle mit Spalten wie „Filiale“, „Kategorie“, „Verkäufe“, „Lager“ und „Ziel“. Sie möchten die Tabelle mithilfe der Spalte „Kategorie“ drehen und die verbleibenden Spalten (Umsatz, Lagerbestand, Ziel) als Zeilen anordnen. Die gewünschte Ausgabe sollte Kategorien als Spalten und Werte als Zeilen haben.
Lösung:
Zum Pivotieren der Tabelle können Sie mehrere PIVOT-Anweisungen mit geeigneten Änderungen des Spaltennamens verwenden:
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
Durch Ändern der Spaltennamen (z. B. Kategorie „1“ und Kategorie „2“) können Sie sicherstellen, dass die PIVOT-Anweisungen funktionieren korrekt.
Die Zwischentabellen (pv1, pv2, pv3) liefern jeweils die Pivot-Daten für Umsatz, Lagerbestand und Ziel. Anschließend können Sie die Ergebnisse von pv3 aggregieren, um die Werte nach Bedarf zu gruppieren und zu summieren.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Spalten in SQL Server mit mehreren PIVOT-Anweisungen Pivotieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!