dth0
Messages postés8Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention28 septembre 2010
-
21 sept. 2010 à 10:18
dth0
Messages postés8Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention28 septembre 2010
-
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!
dth0
Messages postés8Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention28 septembre 2010 24 sept. 2010 à 09:14
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!
cs_gogniol
Messages postés7Date d'inscriptionmardi 21 septembre 2010StatutMembreDernière intervention 7 mai 20111 23 sept. 2010 à 23:37
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.