Rumah > Soal Jawab > teks badan
Saya mempunyai pertanyaan SQL berikut dan tertanya-tanya sama ada saya boleh menjadikan SUM() sebahagian daripadanya dinamik supaya saya tidak perlu memasukkan category_id (2 dan 3) secara manual.
SELECT a.project_id, COUNT(a.id) AS Total, SUM(CASE WHEN a.category_id = 2 AND a.`status` < 80 THEN 1 ELSE 0 END) AS 'Bugs En cours', SUM(CASE WHEN a.category_id = 2 AND a.`status` >= 80 THEN 1 ELSE 0 END) AS 'Bugs Resolu', SUM(CASE WHEN a.category_id = 3 AND a.`status` < 80 THEN 1 ELSE 0 END) AS 'Ameliorations En cours', SUM(CASE WHEN a.category_id = 3 AND a.`status` >= 80 THEN 1 ELSE 0 END) AS 'Ameliorations Resolu' FROM bugs a GROUP BY a.project_id HAVING COUNT(a.id) > 0
Matlamatnya adalah untuk menyenaraikan id item dan kiraan pelbagai jenis Anomali berdasarkan kategori_id dan status ('En cours' atau 'Resolu').
Masalah dengan pertanyaan ini ialah jika kita menambah kategori lain, saya perlu mengedit pertanyaan ini secara manual, yang tidak sesuai.
P粉9086436112023-09-07 14:42:30
SQL dinamik di bawah sedang membina keadaan dan jumlah daripada jadual rujukan dengan kategori.
project_id | Jumlah | Ralat sedang berjalan | Pepijat diselesaikan | Kerja Dalam Proses | Menyelesaikan kecacatan | Penambahbaikan sedang dijalankan | Peningkatan yang diselesaikan |
---|---|---|---|---|---|---|---|
0 | 5 | 1 | 0 | 1 | 1 | 1 | 1 |