mysql查询一段时间内每天的数据,如果这天没有数据,就用0代替。 5C

mysql查询一段时间内每天的数据,如果这天没有数据,就用0代替。

7个回答

提供下表结构,和你要查询哪些数据,要不然怎么回答你

给你个思路,统计函数这个太简单你自己会,那么剩下就是表连接,一个表示日期,一个表是数据,但是日期表是没有的,这个日期你可以用序列做,或者其他方式,反正只要能实现日期表的形式就可以

不知道你用的是哪个数据库,提供你几个函数自己试下哦
oracle: nvl(字段名,0)
sqlserver: isnull(字段名,0)
mysql: ifnull(字段名,0)

select的时候直接把字段名替换成函数就可以了
例如:select ifnull(字段名,0) from 表名
第一次回答麻烦采纳一下哦,我想要C币下文档嘤嘤嘤~

gfgdgs
多行不E必自E 这个不错
6 个月之前 回复

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是具体数据表

遇到过类似问题,建议建一个日期表去关联查询,类似这种。图片说明
不要嫌太low,自我认为这是我做报表时遇到的最好的解决方案

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')

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问