Tajuk itu ditulis semula sebagai: Mendinamikan pertanyaan SQL
P粉478188786
P粉478188786 2023-09-06 15:20:57
0
1
582

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粉478188786
P粉478188786

membalas semua(1)
P粉908643611

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan