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!
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!
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.