Heim > Fragen und Antworten > Hauptteil
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.
P粉9086436112023-09-07 14:42:30
下面的动态SQL正在构建从具有类别的参考表中的条件和总和。
project_id | 总计 | 进行中的错误 | 已解决的错误 | 进行中的缺陷 | 已解决的缺陷 | 进行中的改进 | 已解决的改进 |
---|---|---|---|---|---|---|---|
0 | 5 | 1 | 0 | 1 | 1 | 1 | 1 |