自动统计最近七天最新数据

SELECT
DATE_FORMAT( a.timeDay, '%m-%d' ) AS time,
IFNULL( b.success, 0 ) AS success,
IFNULL( b.fail, 0 ) AS fail
FROM
(
SELECT
curdate( ) AS timeDay UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 1 DAY ) AS timeDay UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 2 DAY ) AS timeDay UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 3 DAY ) AS timeDay UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 4 DAY ) AS timeDay UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 5 DAY ) AS timeDay UNION ALL
SELECT
date_sub( curdate( ), INTERVAL 6 DAY ) AS timeDay
) a
LEFT JOIN (
SELECT
date( d.create_time ) AS time,
sum( CASE WHEN d.execute_status = '3' THEN 1 ELSE 0 END ) AS success,
sum( CASE WHEN d.execute_status = '4' THEN 1 ELSE 0 END ) AS fail
FROM
data_collect d
GROUP BY
date( d.create_time )
) b ON a.timeDay = b.time
ORDER BY
time