select dd.gateway_id, dd.line_id,
MAX(case dd.type WHEN 'month' THEN dd.energy ELSE 0 END) as 'month',
MAX(case dd.type WHEN 'day' THEN dd.energy ELSE 0 END) as 'day'
FROM (
select his.gateway_id, his.line_id, his.energy_cons as energy, 'month' as type FROM cps_energy_collection_month as his
WHERE his.gateway_id = 1 and his.bjdatetime = 202008
UNION ALL
select his.gateway_id, his.line_id, his.energy_cons as energy, 'day' as type FROM cps_energy_collection_day as his
WHERE his.gateway_id = 1 and his.bjdatetime = 20200801
) dd GROUP BY dd.line_id, dd.gateway_id
1 1 6857.896 month
1 2 565.536 month
1 3 1990.380 month
1 4 1432.140 month
1 5 1347.600 month
1 6 30.016 month
1 7 101.288 month
1 1 107.752 day
1 2 3.028 day
1 3 35.960 day
1 4 2.232 day
1 5 19.776 day
1 6 0.000 day
1 7 24.968 day
1 1 6857.896 107.752
1 2 565.536 3.028
1 3 1990.380 35.960
1 4 1432.140 2.232
1 5 1347.600 19.776
1 6 30.016 0.000
1 7 101.288 24.968