Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memutar Baris ke Lajur Menggunakan Fungsi PIVOT SQL Server, Mengendalikan Nombor Minggu Statik dan Dinamik?

Bagaimanakah Saya Boleh Memutar Baris ke Lajur Menggunakan Fungsi PIVOT SQL Server, Mengendalikan Nombor Minggu Statik dan Dinamik?

Mary-Kate Olsen
Lepaskan: 2025-01-25 12:26:08
asal
391 orang telah melayarinya

Fungsi PIVOT Pelayan SQL: Menukar baris kepada lajur, mengendalikan nombor minggu statik dan dinamik

Latar belakang:

Anda mempunyai jadual sementara dengan berbilang lajur termasuk nombor kedai, nombor minggu dan jumlah yang sepadan. Nombor minggu adalah dinamik, yang menjadikan memutar data ke dalam format jadual mencabar.

Penyelesaian:

Untuk menggunakan fungsi PIVOT dalam SQL Server untuk menukar baris kepada lajur, ikut langkah berikut:

1. Nombor minggu statik:

Jika nombor minggu diketahui, gunakan pertanyaan berkod keras berikut:

SELECT *
FROM
(
  SELECT store, week, xCount
  FROM yt
) src
PIVOT
(
  SUM(xcount)
  FOR week IN ([1], [2], [3])
) piv;
Salin selepas log masuk

2. Nombor minggu dinamik:

Jika nombor minggu adalah dinamik, gunakan SQL dinamik:

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);
Salin selepas log masuk

Keputusan:

Kedua-dua pertanyaan mengembalikan jadual pangsi dengan nombor kedai di sebelah kiri dan nombor minggu di bahagian atas. Setiap sel mengandungi jumlah "xCount" untuk kedai dan nombor minggu yang sepadan.

<code>| STORE |   1 |   2 |   3 |
---------------------------
|   101 | 138 | 282 | 220 |
|   102 |  96 | 212 | 123 |
|   105 |  37 |  78 |  60 |
|   109 |  59 |  97 |  87 |</code>
Salin selepas log masuk

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memutar Baris ke Lajur Menggunakan Fungsi PIVOT SQL Server, Mengendalikan Nombor Minggu Statik dan Dinamik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan