Maison > Questions et réponses > le corps du texte
J'ai la requête SQL suivante et je me demandais si je pouvais en rendre la partie SUM() dynamique afin de ne pas avoir besoin de saisir manuellement le Category_id (2 et 3).
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
L'objectif est de répertorier l'identifiant de l'élément et le nombre de différents types d'anomalies en fonction de l'identifiant de la catégorie et du statut ("En cours" ou "Resolu").
Le problème avec cette requête est que si on ajoute une autre catégorie, je dois éditer manuellement cette requête, ce qui n'est pas idéal.
P粉9086436112023-09-07 14:42:30
Le SQL dynamique ci-dessous construit une condition et une somme à partir d'une table de référence avec des catégories.
id_projet | Total | Erreur en cours | Bogue résolu | Travail en cours | Défauts résolus | Améliorations en cours | Améliorations résolues |
---|---|---|---|---|---|---|---|
0 | 5 | 1 | 0 | 1 | 1 | 1 | 1 |