mysql查询半年内的数据数量报表格式为1月:20.........

//查询一个表的半年内的数据

SELECT
                concat(t1.month,"月") as signingMonth,
                IFNULL(count(1),0) AS signingNum
                
            FROM
                (
            SELECT  MONTH(DATE_FORMAT(CURDATE(), '%Y-%m-%h')) as month
                UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), '%Y-%m-%h')) AS month 
                UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), '%Y-%m-%h')) AS month
                UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), '%Y-%m-%h')) AS month
                UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), '%Y-%m-%h')) AS month 
                UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), '%Y-%m-%h')) AS month 
                ) t1
            LEFT JOIN test_signing AS ts ON (
                MONTH(DATE_FORMAT(ts.create_time, '%Y-%m-%h'))= t1.month and YEAR(ts.create_time)=YEAR(NOW())
            )
            GROUP BY t1.month

 

 

 

//多张表查询半年内的数据 然后合并

 select a.month1 as month,a.totalElectricElectricity,b.totalChargingElectricity
        FROM (SELECT
            concat(t1.month,"月") as month1,
            IFNULL(SUM(ts.electricity),0) AS totalElectricElectricity
            
        FROM
            (
        SELECT  MONTH(DATE_FORMAT(CURDATE(), '%Y-%m-%h')) as month
            UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), '%Y-%m-%h')) AS month 
            UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), '%Y-%m-%h')) AS month
            UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), '%Y-%m-%h')) AS month
            UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), '%Y-%m-%h')) AS month 
            UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), '%Y-%m-%h')) AS month 
            ) t1
        LEFT JOIN test_car_statistical AS ts ON (
            MONTH(DATE_FORMAT(ts.create_time, '%Y-%m-%h'))= t1.month and ts.type=1 and YEAR(ts.create_time)=YEAR(NOW())
        )
        GROUP BY t1.month) as a 
        
        LEFT JOIN 
        (
        SELECT concat(t2.month,"月") as month2,IFNULL(SUM(tc.electricity),0) AS totalChargingElectricity  
        FROM(
                SELECT  MONTH(DATE_FORMAT(CURDATE(), '%Y-%m-%h')) as month
                    UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 1 MONTH), '%Y-%m-%h')) AS month 
                    UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 2 MONTH), '%Y-%m-%h')) AS month
                    UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 3 MONTH), '%Y-%m-%h')) AS month
                    UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 4 MONTH), '%Y-%m-%h')) AS month 
                    UNION SELECT MONTH(DATE_FORMAT((CURDATE() - INTERVAL 5 MONTH), '%Y-%m-%h')) AS month 
                    ) t2
                LEFT JOIN test_car_statistical AS tc ON (
                    MONTH(DATE_FORMAT(tc.create_time, '%Y-%m-%h'))= t2.month and tc.type=2 and YEAR(tc.create_time)=YEAR(NOW())
                )
                GROUP BY  t2.month
                
                ) as b
        ON b.month2=a.month1

 

效果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值