本文将对mysql中case when的使用做简要的介绍。
case可以用在图表的数据查询中,如图所示:
我们要按月份去统计部门的收入情况,数据表查询字段查出来是这样的:
select a.collect_date as '日期',d.name as '部门',a.amount_collected as '收入' from fc_contract_receivable a left join fc_contract b on a.ht_code=b.ht_code left join sys_user_info c on b.lease_administrator=c.userId left join sys_org_info d on c.orgid=d.orgId
这时候我们就需要用到case函数来按月份、按部门对数据进行统计。
为了精简,我这里只展示挑选11月份、12月份的查询:
select (CASE WHEN date_format(collect_date,'%m')='11' and date_format(collect_date,'%Y')=date_format(now(),'%Y') THEN '11月' WHEN date_format(collect_date,'%m')='12' and date_format(collect_date,'%Y')=date_format(now(),'%Y') THEN '12月' end) as '月份' , d.name as '部门',sum(a.amount_collected) as '收入' from fc_contract_receivable a left join fc_contract b on a.ht_code=b.ht_code left join sys_user_info c on b.lease_administrator=c.userId left join sys_org_info d on c.orgid=d.orgId where d.parent='01060' group by 月份,部门