mysql - SQL 在某个时间范围内每天销售的商品

标签 mysql sql

如何编写一个查询来返回某个时间范围内每天创建的订单(根据我提供的示例代码)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/

相关文章:

mysql - 慢速三重内部连接

php - 为电子表格导入构建一个包含许多列的数据库表;扩展的可能性

php - 想要使用多个术语时查询中 LIKE 子句的顺序

mysql - SQL如何确定varchar中字符的长度?

mysql - 如何从表中的特定行应用限制查询

mysql - EF6为MySql数据库生成日期比较sql

mysql - Mysql select查询中无法使用Case语句?

MySQL 获取序列号范围

java - Java 中 SQL 查询不解析整个表的方法 - JDBC

为没有结果而替换为 0 的 SQL 语句