Rumah  >  Soal Jawab  >  teks badan

Tajuk itu ditulis semula sebagai: Mendinamikan pertanyaan SQL

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粉478188786P粉478188786410 hari yang lalu525

membalas semua(1)saya akan balas

  • P粉908643611

    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

    balas
    0
  • Batalbalas