Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1585 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Plusieurs count dans une requete sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Plusieurs count dans une requete sql

n°2024529
nicotof29
Posté le 22-09-2010 à 15:58:21  profilanswer
 

Bonjour à tous.
Merci d'avance à tous ceux qui pourront m'aider.
 
J'ai donc besoin de faire une requete sur 3 tables différentes et de faire 2 counts dedans.
J'ai besoin de savoir pour chaques usines ,combien d'items sont dans l'état "To-Treat" (statuses.st_id=5) et dans l'état "Information Required"(statuses.st_id=2)
 
Pour l'instant j'ai fais un essais avec cette requette pour une seule usine(19) mais elle ne fonctionne pas
SELECT
SUM(CASE statuses.st_id WHEN 2 THEN 5 END),  
SUM(CASE statuses.st_id WHEN 5 THEN 5 END)  
FROM bugs,statuses
WHERE bugs.bg_status = statuses.st_id
AND bugs.bg_org IN(SELECT orgs.og_id FROM orgs WHERE orgs.og_id=19)  
GROUP BY statuses.st_name
order by statuses.st_name
 
Si vous pourviez m'éclairer ce serait sympa .
Merci d'avance

mood
Publicité
Posté le 22-09-2010 à 15:58:21  profilanswer
 

n°2024537
olivthill
Posté le 22-09-2010 à 17:03:57  profilanswer
 

Quelle base de données (MySQL, Oracle, Access, ...) ? Je demande cela parce que la syntaxe varie un peu d'une base à l'autre.
 
Déjà, est-ce que vous arrivé à obtenir un compteur ?
 
Je pense que l'on peut simplifier la requête de la façon suivante, pour afficher le premier compteur :

SELECT statuses.st_name, count(*)
FROM bugs,statuses, orgs
WHERE bugs.bg_status = statuses.st_id  
AND orgs.og_id=19
AND bugs.bg_org = orgs.og_id
AND statuses.st_id = 2
GROUP BY statuses.st_name  
order by statuses.st_name


Si ça marche, on verra ensuite pour le deuxième compteur.

n°2024622
nicotof29
Posté le 23-09-2010 à 08:55:42  profilanswer
 

Bonjour,
La Base utilisée est une SQL server 2008r2
J'étais déjà arrivé à affiché un compteur cohérent mais jamais les 2 en même temps(un des deux était tjs faux)
 
La requêtes modifié me donne bien un compteur pour un des deux statuts.
Reste à avoir le 2eme compteur aussi et réussir à le faire pour toutes les usines

n°2024628
nicotof29
Posté le 23-09-2010 à 09:15:59  profilanswer
 

Pour avoir les 2 compteurs,la modif simple est :
SELECT statuses.st_name, count(*)  
FROM bugs,statuses, orgs  
WHERE bugs.bg_status = statuses.st_id  
AND orgs.og_id=19  
AND bugs.bg_org = orgs.og_id  
AND (statuses.st_id = 2 OR statuses.st_id = 5)
GROUP BY statuses.st_name  
order by statuses.st_name
 
ça fonctionne dans le cas d'une usine (19) particulière mais j'aimerai modifier la requete pour toutes les usines
Quelqu'un voit une solution ???

n°2024631
nicotof29
Posté le 23-09-2010 à 09:26:39  profilanswer
 

Bon ben en cherchant 5 minutes j'ai réussi avec la requête suivante:
SELECT orgs.og_name,statuses.st_name, count(*)  
FROM bugs,statuses, orgs  
WHERE bugs.bg_status = statuses.st_id    
AND bugs.bg_org = orgs.og_id  
AND (statuses.st_id = 2 OR statuses.st_id = 5)
GROUP BY statuses.st_name,orgs.og_name
order by orgs.og_name.
 
J'aimerai maintenant modifier le format de sortie.
Pour le moment j'ai 3 colonnes,une pour l'usine,une pour le statut,et une pour le compteur.
J'aimerai avoir toujours 3 colonnes mais pas les mêmes.
La première pour l'usine, la seconde pour le compteur des to-treat et la troisième pour le compteur des informations required.
Quelqu'un sait comment faire ça???

n°2024743
rufo
Pas me confondre avec Lycos!
Posté le 23-09-2010 à 16:50:53  profilanswer
 

Le OR peut se remplacer avantageusement par un IN (2, 5) ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Plusieurs count dans une requete sql

 

Sujets relatifs
[mysql] SELECT puis UPDATE du SELECT en une requetePourquoi ma requete s'arrete?
[RESOLU] addition de plusieurs heures, minutesInclure plusieurs fichiers xml dans un seul
Access2003+état requete analyse croisée avec nombre champs variablesUn résultat en trop dans ma requête
Requête asynchrone (comment attendre ?)[reglé] Plusieurs requete COUNT ?
Plusieurs count dans une requete = multiplicationEquivalent de plusieurs COUNT(x WHERE y = z) dans une requête ?
Plus de sujets relatifs à : Plusieurs count dans une requete sql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR