Je voudrais compter toutes les entrées entre 2 dates (la semaine dernière jusqu'à aujourd'hui inclus) et s'il n'y en a pas, sélectionnez 0. Actuellement, il imprime comme ceci:Select count entre la plage de la date
+-------+------------+
| items | SellDate |
+-------+------------+
| 1 | 2017-01-01 |
+-------+------------+
| 3 | 2017-01-02 |
+-------+------------+
| 1 | 2017-01-03 |
+-------+------------+
| 5 | 2017-01-06 |
+-------+------------+
Cependant, je besoin de quelque chose qui impriment comme ceci:
+-------+------------+
| items | SellDate |
+-------+------------+
| 1 | 2017-01-01 |
+-------+------------+
| 3 | 2017-01-02 |
+-------+------------+
| 1 | 2017-01-03 |
+-------+------------+
| 0 | 2017-01-04 |
+-------+------------+
| 0 | 2017-01-05 |
+-------+------------+
| 5 | 2017-01-06 |
+-------+------------+
| 0 | 2017-01-07 |
+-------+------------+
Mon apparence de requête comme ceci:
SELECT
COUNT(Item.id) AS Items,
DATE(Item.sold_at) AS SellDate
FROM Item
WHERE Item.sold_at IS NOT NULL AND Item.sold_at BETWEEN DATE(DATETIME('now', 'localtime', '-6 days')) AND DATE(DATETIME('now', 'localtime', '+1 day'))
GROUP BY SellDate
Qu'est-ce que Je fais mal?
Vous ne faites rien de "faux". SQL ne crée pas de date à mettre dans le jeu de résultats. Les dates avec des zéros n'existent pas dans les données source. –
s'il vous plaît regardez cela. https://stackoverflow.com/questions/2651249/wanted-to-get-all-dates-in-mysql-result –