mysql query data each month for a year

 

 

 

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

Guess you like

Origin www.cnblogs.com/Skate0rDie/p/12103571.html