の範囲の間でカウントし、何も存在しない場合は、0を選択し、現在、それは次のように出力します。選択は(今日は含まれるまで、最後の週)私は2つの日付の間のすべてのエントリをカウントしたい日付
+-------+------------+
| items | SellDate |
+-------+------------+
| 1 | 2017-01-01 |
+-------+------------+
| 3 | 2017-01-02 |
+-------+------------+
| 1 | 2017-01-03 |
+-------+------------+
| 5 | 2017-01-06 |
+-------+------------+
しかし、私はこのような印刷何か必要があります。
+-------+------------+
| 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 |
+-------+------------+
を私のクエリは次のようになります。
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
何私は間違っている?
「間違っている」ことは何もありません。 SQLは結果セットに入れる日付を構成しません。ソースデータに0の日付は存在しません。 –
これを見てください。 https://stackoverflow.com/questions/2651249/wanted-to-get-all-dates-in-mysql-result –