SELECT MONTH (input_time) AS mon, sum(vol_amount) AS total FROM test WHERE input_time BETWEEN '2017-01-01' AND '2017-02-01' GROUP BY input_time UNION ALL SELECT DISTINCT 1 AS mon, NULL AS total FROM test WHERE ( SELECT MONTH (input_time) AS mon FROM test WHERE input_time BETWEEN '2017-01-01' AND '2017-02-01' GROUP BY input_time ) IS NULL UNION ALL SELECT MONTH (input_time) AS mon, sum(vol_amount) AS total FROM test WHERE input_time BETWEEN '2017-02-01' AND '2017-03-01' GROUP BY input_time UNION ALL SELECT DISTINCT 2 AS mon, NULL AS total FROM test WHERE ( SELECT MONTH (input_time) AS mon FROM test WHERE input_time BETWEEN '2017-02-01' AND '2017-03-01' GROUP BY input_time ) IS NULL UNION ALL SELECT MONTH (input_time) AS mon, sum(vol_amount) AS total FROM test WHERE input_time BETWEEN '2017-03-01' AND '2017-04-01' GROUP BY input_time UNION ALL SELECT DISTINCT 3 AS mon, NULL AS total FROM test WHERE ( SELECT MONTH (input_time) AS mon FROM test WHERE input_time BETWEEN '2017-03-01' AND '2017-04-01' GROUP BY input_time ) IS NULL