COUNT et GROUP BY avec clause WHERE
bonjour,
un problème souvent discuté mais auquel je ne trouve pas de réponse:
j'ai une table clients comme suit:
id : date_creation
je veux connaitre le nombre d'inscriptions par jour, entre deux dates
Voici la requète:
Code:
1 2 3 4
| SELECT from_unixtime(date_creation,'%Y %M %D'),COUNT(id) from `clients`
WHERE date_creation >= '".$startTime."' AND date_creation <= '".$endTime."'
GROUP BY from_unixtime(date_creation,'%Y %M %D')
ORDER BY date_creation asc |
qui renvoie par exemple:
Code:
1 2 3 4 5 6
| 2011 August 1st 2
2011 August 2nd 3
2011 August 3rd 2
2011 August 4th 2
2011 August 5th 4
2011 August 8th 4 |
le problème étant que la requête n'envoie pas de 0 pour les jours sans inscriptions (les 6 et 7 Aout par exemple) ceci à cause de la clause where
la seule solution est de faire des tables de jours des mois avec un join dessus ?
Merci pour vos conseils éclairés ;)
Note: la structure de la table est ce qu'elle est, (champs date qui est un time() dans un varchar)