Bagaimana untuk mengembalikan output jadual pangsi dalam MySQL?
P粉926174288
2023-08-23 20:25:28
<p>Jika saya mempunyai jadual MySQL yang kelihatan seperti ini: </p>
<pra>bilangan halaman tindakan nama_syarikat
----------------------------------
CETAKAN SYARIKAT 3
CETAKAN SYARIKAT 2
CETAKAN SYARIKAT 3
Syarikat BEMAIL
Syarikat B CETAKAN 2
Syarikat B CETAKAN 2
SYARIKAT B CETAKAN 1
CETAKAN SYARIKAT 3
</pra>
<p>Adakah mungkin untuk menjalankan pertanyaan MySQL untuk mendapatkan output seperti ini: </p>
<pra>nama_syarikat CETAK EMEL 1 halaman CETAK 2 halaman CETAK 3 halaman
------------------------------------------------- ----------
SyarikatA 0 0 1 3
SyarikatB 1 1 2 0
</pra>
<p>Ideanya ialah <code>pagecount</code> boleh berbeza-beza, jadi kiraan lajur output harus mencerminkan ini, untuk setiap <kod>tindakan</code>/<code>pagecount</code> Untuk satu lajur, maka bilangan klik untuk setiap <kod>nama_syarikat</kod>. Saya tidak pasti sama ada ini dipanggil jadual pangsi, tetapi adakah sesiapa yang mencadangkan ini? </p>
Penyelesaian saya ialah menggunakan T-SQL tanpa sebarang pivot:
Ini pada asasnya jadual pangsi.
Tutorial yang baik tentang cara melaksanakan ini boleh didapati di sini: http:///www.artfulsoftware.com/infotree/qrytip.php?id=78
Saya mengesyorkan membaca artikel ini dan menyesuaikan penyelesaian ini mengikut keperluan anda.
Dikemas kini
Selepas pautan di atas tidak lagi tersedia buat masa ini, saya merasakan keperluan untuk memberikan beberapa maklumat tambahan untuk sesiapa yang mencari di sini untuk jawapan mysql hub. Ia mempunyai banyak maklumat, saya tidak akan meletakkan semuanya di sini (atau lebih, kerana saya tidak mahu meniru pengetahuan mereka yang luas), tetapi saya akan memberikan beberapa nasihat tentang cara menangani pangsi secara umum dalam jadual Kaedah sql, mengambil peku yang mula-mula bertanya soalan sebagai contoh.
Mungkin pautan akan kembali tidak lama lagi, saya akan memerhatikannya.
Kaedah hamparan...
Ramai orang hanya menggunakan MSExcel, OpenOffice atau alat hamparan lain untuk tujuan ini. Ini adalah penyelesaian yang berfungsi, hanya salin data di sana dan gunakan alat yang disediakan oleh GUI untuk menyelesaikan masalah.
Tetapi... ini bukan masalah, malah mungkin membawa kepada beberapa keburukan seperti cara memasukkan data ke dalam hamparan, isu dengan penskalaan, dsb.
SQL cara...
Memandangkan bentuknya kelihatan seperti ini:
Lihat borang yang dia mahu sekarang:
OK (
电子邮件
、打印 x 页
)类似于条件。主要分组是按company_name
.Untuk menetapkan syarat, anda perlu menggunakan CASE-penyataan. Untuk mengumpulkan mengikut sesuatu, gunakan...KUMPULAN OLEH
GROUP BY
.SQL asas untuk menyediakan pangsi ini mungkin kelihatan seperti ini:
Ini sepatutnya memberikan hasil yang diinginkan dengan cepat. Kelemahan utama pendekatan ini ialah lebih banyak baris yang anda inginkan dalam Jadual Pangsi, lebih banyak syarat yang anda perlu tentukan dalam pernyataan SQL.
Ini juga boleh dikendalikan, jadi orang ramai cenderung menggunakan kenyataan, rutin, kaunter, dsb.
Beberapa pautan lain mengenai topik ini: