Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memutar Baris ke Lajur Menggunakan Fungsi PIVOT SQL Server, Mengendalikan Nombor Minggu Statik dan Dinamik?
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:
<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. Nombor minggu dinamik:
Jika nombor minggu adalah dinamik, gunakan SQL dinamik:
<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>
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>
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!