Heim  >  Fragen und Antworten  >  Hauptteil

Der Titel wird wie folgt umgeschrieben: Dynamisierung von SQL-Abfragen

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粉478188786P粉478188786410 Tage vor524

Antworte allen(1)Ich werde antworten

  • P粉908643611

    P粉9086436112023-09-07 14:42:30

    下面的动态SQL正在构建从具有类别的参考表中的条件和总和。

    project_id 总计 进行中的错误 已解决的错误 进行中的缺陷 已解决的缺陷 进行中的改进 已解决的改进
    0 5 1 0 1 1 1 1

    Antwort
    0
  • StornierenAntwort