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.
Le SQL dynamique ci-dessous construit une condition et une somme à partir d'une table de référence avec des catégories.