前言: 近日在做一个报表功能里面有一个这样的需求是统计各部门在某一月入职和离职的人数 我的步骤 先查出入职的人数 1 2 3 4 5 SELECT dept , COUNT (1) rcNumber FROM 员工表 WHERE ( 入职时间 != OR 入职时间 IS NOT NULL ) and DATE_FORMAT(入职时间, %Y-
前言:
近日在做一个报表功能里面有一个这样的需求是统计各部门在某一月入职和离职的人数 我的步骤先查出入职的人数 查询记录
在查询出离职的人数sql: 结果集
我想要的数据是这样的
我有了以下的尝试1.我将两个查询结果看成两个表,使用了left join 不瞒您说数据格式是我想要的 但是想了想要是右表的记录比较多使用这个不就会少数据吗(right 同理) 2.我使用 union all 这个不是想要的数据 直接将两个结果相加竖向拼接 3.我使用了如同这种 select * from a,b 这个结果是笛卡尔积 两个表相乘的结果 以上方法的sql 就不贴出 意思应该明确了 我不信我就一直问百度 ,百度终于有了回答 我就尝试了一番 1.将入职sql处理如下 离职sql处理如下: 在外面包一层也可不包直接在原sql上加 我是为不破坏基本语句 这样当然不够 2.将两个语句进行竖向拼接合并联合sum 拼接 最终就得到了我想要的结果
|
2021-06-02
2021-06-05
2022-06-27
2022-10-12
2019-09-11