Bonjour,
J'ai une table dans laquel j'ai des objets avec un champs date d'insertion au format datetime.
Je voudrais faire une requete qui m'affiche sur les 12 derniers mois le nombre d'objets dans ma base pour chacun des mois.
La requête que j'ai est:
(les 2 dates sont en dur pour l'instant)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 select count(publish_date) as total, month(publish_date) as m, year(publish_date) as y from vulnerabilities where publish_date <= '2009-10-31' and publish_date >= '2008-10-31' group by m, y order by y, m;
Cette requête fonctionne pour les cas généraux et me retourne bien 12 lignes.
Toutefois, si un des mois ne possède pas de données, il ne me retourne pas de ligne pour ce mois et la réponse ne fait que 11 lignes comme le montre l'exemple suivant (le mois 10/2009 n'est pas représenté) :
Y a t'il un moyen pour forcer la réponse a toujours avoir 12 lignes et afficher 0 pour les mois sans données (peut être/probablement en retouchant la requête).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 +-------+------+------+ | total | m | y | +-------+------+------+ | 46 | 11 | 2008 | | 52 | 12 | 2008 | | 45 | 1 | 2009 | | 47 | 2 | 2009 | | 43 | 3 | 2009 | | 50 | 4 | 2009 | | 26 | 5 | 2009 | | 64 | 6 | 2009 | | 56 | 7 | 2009 | | 50 | 8 | 2009 | | 54 | 9 | 2009 | +-------+------+------+ 11 rows in set (0.00 sec)
Partager