猿问

请大牛帮我看看这个SQL如何实现!

业务场景是这样的:

前台提交数据到后台,后台做统计的时候,要根据每天去统计当天业务数量,想要的效果如下:
比如像查询最近30天内的数据,数据形式是这样的:
天:数目
01:32
02:23
03:0(如果当天没有业务,则为0)
...
30:32
现在问题是,如果当天没有业务产生,那么当天的日期是肯定没有的。如何通过sql查询出来一个如上
例子中的那样,如果当天没有业务,则自动将当天的业务置为0,这个用sql如何实现?在代码层很容易
实现问题是如何通过sql一次查询出来一个完整的结果
慕勒3428872
浏览 428回答 5
5回答

元芳怎么了

建议从代码层面去解决。我之前和你有过同样的需求,后来还是放弃了。毕竟数据库不太适合做逻辑层面上的事情。大可不必非要追求一条SQL解决问题。 可能对你的问题,没有什么实质性帮助。一点点经验之谈

牛魔王的故事

按日期中的天分组,用sum聚合。但是你这个当天的日期没有有点膈应啊

慕娘9325324

我在好几个类似问题里面给过这种构造连续日期的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去吧

汪汪一只猫

1楼正解,前段时间也有这么一个需求,sql语句中尽量少用函数,不是真的“没有什么不是一条sql语句不能解决的,有就两条”;也算是对数据库优化的一种形式吧
随时随地看视频慕课网APP

相关分类

Java
我要回答