业务场景是这样的:
前台提交数据到后台,后台做统计的时候,要根据每天去统计当天业务数量,想要的效果如下:
比如像查询最近30天内的数据,数据形式是这样的:
天:数目
01:32
02:23
03:0(如果当天没有业务,则为0)
...
30:32
现在问题是,如果当天没有业务产生,那么当天的日期是肯定没有的。如何通过sql查询出来一个如上
例子中的那样,如果当天没有业务,则自动将当天的业务置为0,这个用sql如何实现?在代码层很容易
实现问题是如何通过sql一次查询出来一个完整的结果
5 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
建议从代码层面去解决。我之前和你有过同样的需求,后来还是放弃了。毕竟数据库不太适合做逻辑层面上的事情。
大可不必非要追求一条SQL解决问题。
可能对你的问题,没有什么实质性帮助。一点点经验之谈
慕娘9325324
TA贡献1783条经验 获得超4个赞
我在好几个类似问题里面给过这种构造连续日期的sql了,找一个30条以上记录的表,这里是tt:
select @rn:=case when @rn<9 then concat('0',@rn+1) else @rn+1 end rn
from tt,(select @rn:=0) a limit 30;
剩下的就是你自己去join,group by,sum/count去吧
汪汪一只猫
TA贡献1898条经验 获得超8个赞
1楼正解,前段时间也有这么一个需求,sql语句中尽量少用函数,不是真的“没有什么不是一条sql语句不能解决的,有就两条”;也算是对数据库优化的一种形式吧
添加回答
举报
0/150
提交
取消