如何编写一个查询来返回某个时间范围内每天创建的订单(根据我提供的示例代码)2016-02-01 - 2016-02-28强>。结果,我想包含此范围内的所有日期,包括没有创建订单的日期(day_with_no_order 将返回零作为行结果)。我面临的问题是如何指定这个计数范围。我正在使用 MySQL,但这应该是一个普遍问题,而不是特定于供应商的问题。
DROP TABLE IF EXISTS orders;
CREATE TABLE orders ( id INT NOT NULL, date_created DATE NOT NULL, items_quantity INT NOT NULL );
INSERT INTO orders VALUES
(1, STR_TO_DATE('2016-02-03','%Y-%m-%d'), 1),
(2, STR_TO_DATE('2016-02-04','%Y-%m-%d'), 2),
(3, STR_TO_DATE('2016-02-05','%Y-%m-%d'), 3),
(4, STR_TO_DATE('2016-02-05','%Y-%m-%d'), 1),
(5, STR_TO_DATE('2016-02-10','%Y-%m-%d'), 2),
(6, STR_TO_DATE('2016-02-12','%Y-%m-%d'), 3),
(7, STR_TO_DATE('2016-02-19','%Y-%m-%d'), 1),
(8, STR_TO_DATE('2016-02-19','%Y-%m-%d'), 2),
(9, STR_TO_DATE('2016-02-21','%Y-%m-%d'), 3);
最佳答案
SELECT *
FROM ORDERS
WHERE date_created > to_date(dd-mon-yyyy, 01-02-2017)
AND date_created < to_date(dd-mon-yyyy, 01-03-2017);
或者你的意思是每天的订单数量总计?例如,您想要如下输出:
2017年3月2日1
2017年4月2日2
2017年5月2日4
?
关于mysql - SQL 在某个时间范围内每天销售的商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42555948/