case when 心得1

sum case when 查询总额统计优化:

 1 SELECT SUM(CASE month(时间字段) WHEN '1' THEN 金额字段 ELSE 0 END) AS '一月',
 2 SUM(CASE month(时间字段) WHEN '2' THEN 金额字段 END) AS '二月',
 3 SUM(CASE month(时间字段) WHEN '3' THEN 金额字段 END) AS '三月',
 4 SUM(CASE month(时间字段) WHEN '4' THEN 金额字段 END) AS '四月',
 5 SUM(CASE month(时间字段) WHEN '5' THEN 金额字段 END) AS '五月',
 6 SUM(CASE month(时间字段) WHEN '6' THEN 金额字段 END) AS '六月',
 7 SUM(CASE month(时间字段) WHEN '7' THEN 金额字段 END) AS '七月',
 8 SUM(CASE month(时间字段) WHEN '8' THEN 金额字段 END) AS '八月',
 9 SUM(CASE month(时间字段) WHEN '9' THEN 金额字段 END) AS '九月',
10 SUM(CASE month(时间字段) WHEN '10' THEN 金额字段 END) AS '十月',
11 SUM(CASE month(时间字段) WHEN '11' THEN 金额字段 END) AS '十一月',
12 SUM(CASE month(时间字段) WHEN '12' THEN 金额字段 END) AS '十二月'
13 FROM14 WHERE +字段条件

执行结果为

其中碰到一个比较大的坑就是在操作的时候直接把数据复制到mysql的工具上面,这样是不行的,有可能会报错,因为每个mysql 的管理工具版本可能不一样,如果直接复制函数可能没有引用到!需要自己手动的去引用自己的mysql函数

同时这个也有一个很大的好处就是,我们使用group  by类型的函数去查询 查询出来的结果可能是竖排的而不是横排的那种比较显眼的结果竖排查询查询语句

1 SELECT  
2   MONTH ( 时间字段),  
3   SUM(钱字段)  
4 FROM  
5 6 WHERE  
7   YEAR (时间字段) = '2018'  AND条件 -- 这里假设你要查 2018年的每月的统计。  
8 GROUP BY  
9  MONTH (时间)  

显示结果如下同样是查询的某年每个月的数据总和且显示为竖排,显示如下所示为每个月的数据

猜你喜欢

转载自www.cnblogs.com/qxlLyy/p/9145644.html