У меня есть таблица orders со столбцом Date временной метки.Я хочу считать количество размещенных заказов на каждую дату, включая нули для дат, когда не было размещено ни одного заказа, например:
TotalOrders --------- Дата
12 ------------------ 01/02/2019
0 ------------------- 02/02/2019
7 ------------------- 03/02/2019
0 ------------------- 04/02/2019
4 ------------------- 05/02/2019
0 ------------------- 06/02/2019
Я искал это здесь и получил одно решение:
выберите COUNT (o.OrderID) AS TotalOrders, a.date
из (выберите date_add ('2019-07-01',ИНТЕРВАЛ n5.num * 10000 + n4.num * 1000 + n3.num * 100 + n2.num * 10 + n1.num DAY) в качестве даты
из (выберите 0 в качестве num union all выберите 1 union allвыберите 2 объединение
все выберите 3 объединение все выберите 4 объединение все выберите 5 объединение все выберите 6 объединение все выберите 7 объединение все выберите 8 объединение все выберите 9) n1,
(выберите 0 как числосоюз все выбрать 1 союз все выбрать 2 союзвсе выберите 3 объединить все выберите 4 объединить все выберите 5 объедините все выберите 6 объедините все выберите 7 объедините все выберите 8 объедините все выберите 8 объедините все выберите 9) n2,
(выберите 0 как num объединение все выберите 1 объединение все выберите 2 объединениевсе выберите 3 объединить все выбрать 4 объединить все выбрать 5 объединить все выбрать 6 объединить все выбрать 7 объединить все выбрать 8 объединить все выбрать 9 объединить все выбрать 9) n3,
(выбрать 0 как num объединение всех выбрать 1 объединение всех выбрать 2 объединениевсе выберите 3 объединить все выберите 4 объединить все выберите 5 объединить все выберите 6
объедините все выберите 7 объедините все выберите 8 объедините все выберите 9) n4,
(выберите 0 как num объединение всех выберите 1 объедините всевыберите 2 объединить все выберите 3 объединить все выберите 4 объедините все выберите 5 объедините все выберите 6 объедините все выберите 7 объедините все выберите 8 объедините все выберите 8 объединить все выберите 9) n5
) a
LEFT JOINON MONTH (o.Date) = MONTH (a.date)
AND YEAR (o.Date) = YEAR (a.date) где MONTH (a.date) = '7' и
YEAR (a.date) = '2019' GROUP BY a.date упорядочить по a.date
EDIT : Как и в июле 2019 года, было размещено всего 4 заказа, поэтому, когда я использовал вышеуказанное решение, оно дает мне 4 результат для каждой даты.вместо этого он должен был показывать счетчик заказов для соответствующей даты и ноль для дат без заказа.Но это показывает 4 для каждой даты.Пожалуйста, дайте мне знать, где я делаю это неправильно.Моя таблица заказов:
заказов (OrderID (pk), дата, totalPrice, CustomerID)