求一个mysql 查询日期统计的语句 100

有一个订单表字段有:日期,成本,应收……,日期格式是2018-01-01。每一个订单一条记录,一天用多个订单,也可能没有订单。要求是统计出本月或者某个月的每日订单数量,和... 有一个订单表 字段有:日期 ,成本,应收……,日期格式是2018-01-01。
每一个订单一条记录 ,一天用多个订单 ,也可能没有订单。要求是 统计出本月或者某个月的每日订单数量,和成本总和……, 现在要求是 某一天 没有订单 ,要返回 0数据 ,占用数据行,而不是 没有数据不返回数据 。有人说用虚拟表 生成日期 ,再去查询,我没有见过 ,请各位能不能找个例子给我看看
SELECT
zy_order.order_date,
sum(zy_order.order_cost),
sum(zy_order.order_taking)
FROM
zy_order
where zy_order.order_date in('2018-02-25','2018-02-27')
group by order_date
上面是 我写的 ,25号有数据 ,现在怎么让27号没有数据 返回0,日期字段还要显示2018-02-27
展开
 我来答
折柳成萌
高粉答主

2018-03-07 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:5820万
展开全部
SELECT DATE_FORMAT(time,'%Y-%m-%d') as day, sum(case when amount>0 then amount when amount=0 then 0 end) as amount1
from table where time>='2014-11-01' group by day;
我没有测试。time表示日期,amount表示数量。查询11月后每天成交数量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
TableDI
2024-07-18 广告
当在Excel中匹配两个表格的数据时,我们可以使用多种方法。一种常见的方法是使用“VLOOKUP”函数,它允许你在一个区域或表格的首列中查找值,并返回同一行中其他列的值。确保两个表格中有一个共同的键(如ID、姓名等),并在VLOOKUP函数... 点击进入详情页
本回答由TableDI提供
tjrmgs
2018-03-07 · TA获得超过5764个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:995万
展开全部
题主这个需求可以通过存储过程予以实现。

这里提供一个思路,首先创建一个临时表,然后使用循环将某个月一号到月底每一天的日子都存进临时表内,然后用临时与订单表基于日期字段进行左连接,再用临时表的日期字段分组汇总出每一天的订单笔数等数据。这样没有订单的日子也会被显示出来,其汇总数为零。

单纯用sql语句也是可以的,但是语句写起来比较冗长繁琐,被统计的日数不能太多(受SQL嵌套层数限制)。
下面提供一个统计2018年1月前7天,没有记录也输出的汇总数的例子供参考

select t.日期,count(a.日期) as 订单数,
sum(a.成本) as 成本合计,
sum(a.应收) as 应收合计 from
(select '2018-01-01' as 日期 union all
select '2018-01-02' union all
select '2018-01-03' union all
select '2018-01-04' union all
select '2018-01-05' union all
select '2018-01-06' union all
select '2018-01-07') t left join
订单表 a on t.日期=a.日期
group by t.日期;

统计一个月按照上面的例子,将所有一个月的日子都联合起来就行了。
追问
能给一个具体实例吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式