Heim > Datenbank > MySQL-Tutorial > Wie kann ich Zeilen mit der Pivot -Funktion des SQL Servers in Spalten drehen und sowohl statische als auch dynamische Wochennummern behandeln?

Wie kann ich Zeilen mit der Pivot -Funktion des SQL Servers in Spalten drehen und sowohl statische als auch dynamische Wochennummern behandeln?

Mary-Kate Olsen
Freigeben: 2025-01-25 12:26:08
Original
333 Leute haben es durchsucht

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

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

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

How Can I Pivot Rows into Columns Using SQL Server's PIVOT Function, Handling Both Static and Dynamic Week Numbers?

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!

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