Le titre est réécrit comme suit : Dynamisation des requêtes SQL
P粉478188786
P粉478188786 2023-09-06 15:20:57
0
1
551

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粉478188786
P粉478188786

répondre à tous(1)
P粉908643611

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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal