如何编写一个查询,该查询将返回每天创建的订单一段时间让我说(根据我提供的示例代码) 2016-02-01 - 2016-02-28 < / strong>即可。结果我希望包括此范围的所有日期,包括没有创建订单的日期(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);
答案 0 :(得分:0)
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);
或者您的意思是总计每天的订单数量?例如,你想输出如下:
03/02/2017 1
04/02/2017 2
05/02/2017 4