按月份统计每个月的订单总金额SQL语句解析

时间:2024-04-06 19:48:51

一.SQL语句:

select 
            IFNULL(sum(case month(createTime) when '1' then price else 0 end), 0) as 一月份,
            IFNULL(sum(case month(createTime) when '2' then price else 0 end), 0) as 二月份,
            IFNULL(sum(case month(createTime) when '3' then price else 0 end), 0) as 三月份,
            IFNULL(sum(case month(createTime) when '4' then price else 0 end), 0) as 四月份,
            IFNULL(sum(case month(createTime) when '5' then price else 0 end), 0) as 五月份,
            IFNULL(sum(case month(createTime) when '6' then price else 0 end), 0) as 六月份,
            IFNULL(sum(case month(createTime) when '7' then price else 0 end), 0) as 七月份,
            IFNULL(sum(case month(createTime) when '8' then price else 0 end), 0) as 八月份,
            IFNULL(sum(case month(createTime) when '9' then price else 0 end), 0) as 九月份,
            IFNULL(sum(case month(createTime) when '10' then price else 0 end), 0) as 十月份,
            IFNULL(sum(case month(createTime) when '11' then price else 0 end), 0) as 十一月份,
            IFNULL(sum(case month(createTime) when '12' then price else 0 end), 0) as 十二月份
        from `order`
            where year(createTime)=#{year};

二.步骤解析

1.字段createTime 当前系统时间格式为yyyy-MM-dd HH:mm:ss

2.字段price 销售额

3.case month(createTime) when '7' then price else 0 end:获取系统时间的月份,当月份为7月获取7月所有的销售额,若没有销售额销售额则为0;

按月份统计每个月的订单总金额SQL语句解析

4.sum(case month(createTime) when '7' then price else 0 end):将7月所有的销售额进行合计;

按月份统计每个月的订单总金额SQL语句解析

5.IFNULL(sum(case month(createTime) when '7' then price else 0 end), 0) as 七月份  :

      类似三木运算符,IFNULL(当月总销售额,0),假如销售额不为 NULL,则 IFNULL()   的返回值为当月总销售额 ,否则为0;

      as重用名为‘七月份’;

按月份统计每个月的订单总金额SQL语句解析

6.当年每个月销售额效果展示:

按月份统计每个月的订单总金额SQL语句解析