Sql语句-case when then else end

本文展示了如何使用SQL查询来聚合部门销售数据,并按月份计算各部门的销售额。

根据上面的表信息输出下面的结果:



下面是建库和表结构据:

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. create table DeptSales  
  2. (  
  3.     deptID int,  
  4.     SubjMonth int ,  
  5.     sales int ,  
  6.     deptname varchar(50)  
  7. )  

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. insert into deptsales (deptid ,subjmonth,sales) values (1,1,55);  
  2. insert into deptsales (deptid ,subjmonth,sales) values (2,1,66);  
  3. insert into deptsales (deptid ,subjmonth,sales) values (3,1,77);  
  4. insert into deptsales (deptid ,subjmonth,sales) values (2,2,34);  
  5. insert into deptsales (deptid ,subjmonth,sales) values (4,2,56);  
  6. insert into deptsales (deptid ,subjmonth,sales) values (3,3,78);  

执行sql语句:

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. mysql> select deptID as '部门',sum(case SubjMonth when 1 then sales end) '一月销售额',sum(case SubjMonth when 2 then sales end) '二月销售额',sum(case SubjMonth when 3 then sales end) '三月销售额',sum(case SubjMonth when 4 then sales end) '四月销售额'  from deptsales d group by deptID;  
  2. +------+------------+------------+------------+------------+  
  3. | 部门 | 一月销售额 | 二月销售额 | 三月销售额 | 四月销售额 |  
  4. +------+------------+------------+------------+------------+  
  5. |    1 | 55         | NULL       | NULL       | NULL       |  
  6. |    2 | 66         | 34         | NULL       | NULL       |  
  7. |    3 | 77         | NULL       | 78         | NULL       |  
  8. |    4 | NULL       | 56         | NULL       | NULL       |  
  9. +------+------------+------------+------------+------------+  
  10. 4 rows in set  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值