Maison  >  Questions et réponses  >  le corps du texte

Le titre est réécrit comme suit : Dynamisation des requêtes SQL

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粉478188786P粉478188786410 Il y a quelques jours518

répondre à tous(1)je répondrai

  • P粉908643611

    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

    répondre
    0
  • Annulerrépondre