Renvoyer la valeur 0 avec COUNT [Résolu]

dth0 8 Messages postés jeudi 8 janvier 2009Date d'inscription 28 septembre 2010 Dernière intervention - 21 sept. 2010 à 10:18 - Dernière réponse : dth0 8 Messages postés jeudi 8 janvier 2009Date d'inscription 28 septembre 2010 Dernière intervention
- 24 sept. 2010 à 09:14
Bonjour à tous

J'ai un souci avec la fonction COUNT, peut-être saurez vous m'aider:

En résumé, j'utilise un outil de gestion de parc (GLPI), j'ai donc une db contenant toutes les demandes d'intervention des users. Ces interventions sont classées par catégories (installation, dépannage etc). Il me faudrait le nombre d'interventions par catégorie. Simplement, il faudrait que le COUNT me renvoie 0 lorsqu'une catégorie ne contient aucune intervention. Là ça ne renvoie rien, ce qui décale tout d'une ligne lorsque je veux extraire les résultats de la requête ds un tableau excel. Voilà un exemple de requete:


"SELECT glpi_tracking_0.category, COUNT(*)
FROM glpi.glpi_tracking glpi_tracking_0
WHERE (glpi_tracking_0.date>={ts '" & Format$(ActiveSheet.date1.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'} And glpi_tracking_0.date<{ts '" & Format$(ActiveSheet.date2.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'}) 
GROUP BY glpi_tracking_0.category")


Si qqun a la solution à mon problème ce serait très sympa de m'en faire part!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
dth0 8 Messages postés jeudi 8 janvier 2009Date d'inscription 28 septembre 2010 Dernière intervention - 24 sept. 2010 à 09:14
3
Merci
Bonjour,

J'avais trouvé une solution similaire à la tienne:

SELECT c.name, Count(g.ID)   
FROM {oj glpi.glpi_dropdown_tracking_category c 
LEFT OUTER JOIN glpi.glpi_tracking g ON c.ID = g.category  AND (g.date>={ts '2010-08-01 00:00:00'} And g.date<{ts '2010-08-05 00:00:00'})}  
GROUP BY c.name


Avec une jointure gauche il ne faut pas laisser le where, mais dans ta requête j'imagine que ça passe!

Merci pour ta réponse en tout cas!

Merci dth0 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de dth0
cs_gogniol 7 Messages postés mardi 21 septembre 2010Date d'inscription 7 mai 2011 Dernière intervention - 23 sept. 2010 à 23:37
0
Merci
Bonjour,

Il faut faire une jointure.
J'imagine que tu dois avoir une table contenant toutes les catégories. Pour l'exemple appelons la : glpi.glpi_categories

La requête devient :
SELECT glpi_categories_0.category, COUNT(glpi_tracking_0.category)
FROM glpi.glpi_tracking glpi_tracking_0 
RIGHT JOIN glpi.glpi_categories glpi_categories_0 
ON glpi_categories_0.category = glpi_tracking_0.category 
WHERE (...) 
GROUP BY glpi_categories_0.category


Remarque : j'ai viré ta clause WHERE pour être plus lisible dans le forum, mais tu dois la rajouter pour ton résultat.

Cordialement
Gogniol
Commenter la réponse de cs_gogniol

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.