我用的是mysql数据库,因业务需要,需要一条sql语句
select count(*) as 总量,str_to_date(left(Time,10),'%Y-%m-%d') as 时间 from table_name where group by str_to_date(left(Time,10),'%Y-%m-%d')
Time是表的时间字段
这条语句就是把当天的数据条数的总量显示出来(当天有数据才会显示)
我现在想要的是不管当天有没有记录都显示出来,如果当天没有记录count就显示为0,就是说需要把当月每天的记录数都显示出来,但是我不知道怎么写,
请教高手!!

解决方案 »

  1.   

    建一个临时表,插入一个月的所有日期,以此作为参考,left join 你要查的表
      

  2.   

    如新建表TimeTB,时间字段TimeCol,并插入一个月的时间
    select 
      str_to_date(left(a.TimeCol,10),'%Y-%m-%d') as 时间,
      isnull(count(b.*),0) as 总量 
    from 
      TimeTB a
    left join 
      table_name  b 
    on 
      str_to_date(left(a.TimeCol,10),'%Y-%m-%d')=str_to_date(left(b.Time,10),'%Y-%m-%d')
    group by 
      str_to_date(left(a.TimeCol,10),'%Y-%m-%d') 
      

  3.   

    count 前加ifnull ,即ifnull(count(*),0)