思路:sql
1. 經過該語句能夠實現指定日期到當前日期的日期列表數據,並用0填充要統計的sum字段性能
SELECT @cdate := date_add(@cdate,interval - 1 day) `date` , 0 as `sum` from (SELECT @cdate :=date_add(CURDATE(),interval + 1 day) from <任意有數據表名>) t1 where @cdate > '2017-08-03'
2. 要統計的SQL語句,如:code
select DATE_FORMAT(createTime,'%Y-%m-%d') as `date`,sum(money) from payTable group by `date`
3. 合併兩個結果集,並保證字段相同。完整代碼以下:io
select `date` ,max(`sum`) as `sum` from ( SELECT @cdate := date_add(@cdate,interval - 1 day) `date` , 0 as `sum` from (SELECT @cdate :=date_add(CURDATE(),interval + 1 day) from <任意有數據表名>) t1 where @cdate > '2017-08-03' union all select DATE_FORMAT(createTime,'%Y-%m-%d') as `date`,sum(money) from payTable group by `date` ) _tmpAllTable group by `date`
以上SQL未考慮性能問題,在實際使用中慎重考慮class