请问下大家,现在要取人事系统中的数据做每个月各部门的人数情况,和每周人数趋势图。什么思路呢?

请问下大家:现在要取人事系统中的数据做每个月各部门的人数情况,和每周人数趋势图。什么思路呢?--当下很容易取到最新的人数情况,但是怎么查出以往每月、每周的人数情况捏,没想到。。。。。

f728d257-8c9f-4817-83d5-7ff0aaf0cea1.png

FineReport 牛气冲天的哇 发布于 2022-4-18 19:26
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
axingLv6专家互助
发布于2022-4-18 23:22(编辑于 2022-4-18 23:23)

每月、每周是一个时间段,时间段内的人数是不确定的,一般要取一个时间点

通过以当月最后一天的人数表示当月人数,当周最后一天的人数表示当周人数

人事数据表结构一般有如下字段:

姓名     入职日期   离职日期

那么介于入职和离职之间的就是在职人数

入职离职当天算不算各公司计算各有差异,这里以都算为例,sql如下

select 

sum(case when '日期1' between 入职日期 and isnull(离职日期,'2099-12-31') then 1 else 0 end) as 本期人数,

sum(case when '日期2' between 入职日期 and isnull(离职日期,'2099-12-31') then 1 else 0 end) as 上期人数,

sum(case when '日期3' between 入职日期 and isnull(离职日期,'2099-12-31') then 1 else 0 end) as 上上期人数,

......

from 

表名

-----------------

将日期123代入sql中计算,根据你要计算周还是月做递减运算

离职日期可能为空,要判空,根据你的数据库修改

  • 牛气冲天的哇 牛气冲天的哇(提问者) 谢谢您!这个日期123在我的情景是第1周、第2周、第3周....,而每周不一定有新的入离职,那么返回去查每一周的周末在职人数是不是纯写sql不好做呢,除非我单独一周一周地写union起来(暂时只想到这么个破招) o(╥﹏╥)o
    2022-04-19 09:17 
  • axing axing 回复 牛气冲天的哇(提问者) 不用union all呀,最终sql我都写出来啦,比如你计算每周的,以今天为例,那么日期1就是今天,日期2就是今天减7,日期3就是今天减14,如此类推,每周的都计算出来了
    2022-04-19 22:33 
最佳回答
0
杰杰1108Lv6初级互助
发布于2022-4-18 21:10

2021年11月份在职人数=当前在职人数+2021年11月份之后离职人数-2021年11月份之后入职人数

  • 3关注人数
  • 508浏览人数
  • 最后回答于:2022-4-18 23:23
    请选择关闭问题的原因
    确定 取消
    返回顶部