SELECT dateTable.date, IFNULL( paygameTable.money, '0' ) AS money , IFNULL( rechargeTable.rechargeMoney, '0' ) AS recharge_money FROM ( SELECT DATE_FORMAT( CONCAT(y.`FIRST`, '-', x.d, '-01'), '%Y-%m' ) AS date FROM ( SELECT 1 AS d UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 ) x, ( SELECT '2019' AS FIRST ) y ) AS dateTable LEFT JOIN ( SELECT TRUNCATE ( sum( paygame.money ), 2 ) AS money, DATE_FORMAT( paygame.add_time, '%Y-%m' ) AS paytime FROM sys_paygames paygame WHERE DATE_FORMAT( paygame.add_time, '%Y' ) = '2019' GROUP BY paytime ) AS paygameTable ON dateTable.date = paygameTable.paytime LEFT JOIN ( SELECT TRUNCATE ( sum( cost.card_amount ), 2 ) AS rechargeMoney, DATE_FORMAT( cost.add_time, '%Y-%m' ) AS costtime FROM sys_card_cost cost WHERE DATE_FORMAT( cost.add_time, '%Y' ) = '2019' GROUP BY costtime ) AS rechargeTable ON dateTable.date = rechargeTable.costtime ORDER BY date asc
1