mysql查询一段时间内每天的数据,如果这天没有数据,就用0代替。
遇到过类似问题,建议建一个日期表去关联查询,类似这种。
不要嫌太low,自我认为这是我做报表时遇到的最好的解决方案
提供下表结构,和你要查询哪些数据,要不然怎么回答你
给你个思路,统计函数这个太简单你自己会,那么剩下就是表连接,一个表示日期,一个表是数据,但是日期表是没有的,这个日期你可以用序列做,或者其他方式,反正只要能实现日期表的形式就可以
不知道你用的是哪个数据库,提供你几个函数自己试下哦
oracle: nvl(字段名,0)
sqlserver: isnull(字段名,0)
mysql: ifnull(字段名,0)
select的时候直接把字段名替换成函数就可以了
例如:select ifnull(字段名,0) from 表名
第一次回答麻烦采纳一下哦,我想要C币下文档嘤嘤嘤~
1、把你要查询的那张表截个图发出来,要带表头,并且至少有一条数据,这样知道你表里存的数据格式,好有个参照。
2、希望能查询出来的结果格式,可以用EXCEL表示一下。
3、确定一下:查询条件就是时间范围是吧?比如:2019-07-01至2019-07-04。
把这3点描述清楚,我相信很快有人(也许是我,也许是其他大牛)能解决你的问题。
提问不是很清晰,一个思路如下:
select count(1) as sumvalue, DATE_FORMAT(data_time, '%Y-%m-%d') from yourtable
group by DATE_FORMAT(data_time, '%Y-%m-%d')
其中,
data_time是时间类型字段,
yourtable是具体数据表
SELECT * FROM test
SELECT (CASE WHEN NAME = '' THEN 0 ELSE NAME END) AS NAME FROM test LIMIT 0,100
-- insert into test(Name,Times) values ('aa','2019-07-19')
-- INSERT INTO test(NAME,Times) VALUES ('bb','2019-07-20')
-- INSERT INTO test(NAME,Times) VALUES ('cc','2019-07-21')
-- INSERT INTO test(NAME,Times) VALUES ('','2019-07-22')
-- INSERT INTO test(NAME,Times) VALUES ('ee','2019-07-23')