Il pourrait être plus simple d'utiliser simplement GROUP BY, puis dans votre code réel, ajoutez les dates manquantes (ou parcourez toute la plage de dates et affichez un zéro si la date manque dans les résultats de la requête).
Tout ne doit pas être résolu en SQL, et beaucoup de choses sont plus faciles à résoudre ailleurs. :)