Die PIVOT-Funktion von SQL Server: Zeilen in Spalten umwandeln, statische und dynamische Wochennummern verarbeiten
Hintergrund:
Sie haben eine temporäre Tabelle mit mehreren Spalten, einschließlich Filialnummer, Wochennummer und entsprechender Summe. Die Wochenzahlen sind dynamisch, was die Umwandlung der Daten in ein Tabellenformat schwierig macht.
Lösung:
Um die Funktion PIVOT
in SQL Server zum Konvertieren von Zeilen in Spalten zu verwenden, führen Sie die folgenden Schritte aus:
1. Statische Wochennummer:
Wenn die Wochennummer bekannt ist, verwenden Sie die folgende fest codierte Abfrage:
<code class="language-sql">SELECT * FROM ( SELECT store, week, xCount FROM yt ) src PIVOT ( SUM(xcount) FOR week IN ([1], [2], [3]) ) piv;</code>
2. Dynamische Wochennummer:
Wenn die Wochennummer dynamisch ist, verwenden Sie dynamisches SQL:
<code class="language-sql">DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Week) FROM yt GROUP BY Week ORDER BY Week FOR XML PATH(''), TYPE ).VALUE('.', 'NVARCHAR(MAX)') ,1,1,''); SET @query = 'SELECT store,' + @cols + ' FROM ( SELECT store, week, xCount FROM yt ) x PIVOT ( SUM(xCount) FOR week IN (' + @cols + ') ) p '; EXECUTE(@query);</code>
Ergebnis:
Beide Abfragen geben eine Pivot-Tabelle mit der Filialnummer links und der Wochennummer oben zurück. Jede Zelle enthält die Summe von „xCount“ für die entsprechende Filiale und Wochennummer.
<code>| STORE | 1 | 2 | 3 | --------------------------- | 101 | 138 | 282 | 220 | | 102 | 96 | 212 | 123 | | 105 | 37 | 78 | 60 | | 109 | 59 | 97 | 87 |</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen mit der Pivot -Funktion des SQL Servers in Spalten drehen und sowohl statische als auch dynamische Wochennummern behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!