当前位置: 代码迷 >> J2EE >> 求大神帮小弟我精简SQL句子
  详细解决方案

求大神帮小弟我精简SQL句子

热度:18   发布时间:2016-04-17 23:45:59.0
求大神帮我精简SQL句子。

这里面只有两张表:oa_check_out(外出登记表)和oa_check_leave(请假表),要同过外出表的原因例出不同的统计条数。写出来感觉好长。想大神帮改改,而且中感觉还有错误的样子
------解决方案--------------------
思路是这样:1.列出所有的外出原因,2利用group 查询请假表中各种原因汇总出来的条数
再将两个结果关联 就出来了
------解决方案--------------------

select  person_id,
    sum(case when status1=1 and reason !='WCBS' then 1 else 0 end) as out_times,
    sum(case when status2=1 then 1 else 0 end) as leave_times,
    sum(case when status1=1 and reason ='WCBS' then 1 else 0 end) as late_times
from 
    (
        select person_id,status as status1 ,null as status2, reason from oa_check_out
        union all
        select person_id,null as status1, status as status2, reason from oa_check_leave
    ) un
 group by person_id


楼主看看这是不是你要的
  相关解决方案