Ich habe die folgende SQL-Abfrage und frage mich, ob ich den SUM()-Teil davon dynamisch machen könnte, sodass ich die Kategorie-ID (2 und 3) nicht manuell eingeben muss.
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
Das Ziel besteht darin, die Artikel-ID und die Anzahl verschiedener Arten von Anomalien basierend auf der Kategorie-ID und dem Status („En cours“ oder „Resolu“) aufzulisten.
Das Problem bei dieser Abfrage besteht darin, dass ich diese Abfrage manuell bearbeiten muss, wenn wir eine weitere Kategorie hinzufügen, was nicht ideal ist.
下面的动态SQL正在构建从具有类别的参考表中的条件和总和。