一.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;
4.sum(case month(createTime) when '7' then price else 0 end):将7月所有的销售额进行合计;
5.IFNULL(sum(case month(createTime) when '7' then price else 0 end), 0) as 七月份 :
类似三木运算符,IFNULL(当月总销售额,0),假如销售额不为 NULL,则 IFNULL() 的返回值为当月总销售额 ,否则为0;
as重用名为‘七月份’;
6.当年每个月销售额效果展示: