下图,如何得到每个人员每月休假多少天,因为开始日期和结束日期会存在跨月份,请假天数也会超过31天

微信图片_20210125135213.png

会出现下图这种情况,请假的开始日期和结束日期会存在跨月份,但我想得到每月休假多少天微信图片_2021012514042511.png

Regina 发布于 2021-1-25 13:54 (编辑于 2021-1-25 14:05)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
axingLv6专家互助
发布于2021-8-3 16:47

用一个日期表连接请假表,大致如下

select  日期格式化年月,count(1)  as qty  

from 日期表 a

 join 请假表 b on a.日期 between b.开始日期 and b.结束日期

gorup by  日期格式化年月

最佳回答
0
张洪威Lv6高级互助
发布于2021-1-25 14:00

百度搜下你数据库对应的日期相减函数就好了。

image.png

  • Regina Regina(提问者) 时间差我已经有了,我想得到每月休假有多少天
    2021-01-25 14:01 
  • 张洪威 张洪威 回复 Regina(提问者) 你按月来统计休假的话,那请假怎么能跨月统计呢,不应该跨月的请假分到对应两个月里面吗。维护一个12个月的休息天数,然后加上当月请假天数。
    2021-01-25 14:05 
最佳回答
0
luojian0323Lv7资深互助
发布于2021-1-25 14:05(编辑于 2021-1-25 14:06)

看我这个是不是和你的很像:

顾问-日期区间人数统计.cpt

image.png

image.png

我这个是按天统计。

你可以截取年月部分,实现按月统计

  • Regina Regina(提问者) 有出现跨月情况吗
    2021-01-25 14:30 
  • luojian0323 luojian0323 回复 Regina(提问者) 我这个是跨天统计,你用相同思路求跨月天数,有什么问题吗?
    2021-01-25 15:05 
最佳回答
0
烟尘Lv6高级互助
发布于2021-1-25 14:05

你的请假天数也计算假日?

一般的HR系统会做日期分解,就是把请假分到每一天上。

如果您用的是HR系统,可以找一找有没有日期分解的表。

如果没有,最好的办法是做程序数据集,因为sql上做循环判断效率还是比较低

循环判断每一条记录的开始结束日期是否在同一个月,如果是正常计算天数,如果不是就分别跟月末月初做日期天数计算,最终累计出每月天数。


最佳回答
0
杰杰1108Lv6初级互助
发布于2021-1-25 14:56(编辑于 2021-1-25 14:57)

image.pngSELECT STARTdate,last_day(STARTdate) FROM TAB_TESTDAY

这只是一种思路

  • 6关注人数
  • 557浏览人数
  • 最后回答于:2021-8-3 16:47
    请选择关闭问题的原因
    确定 取消
    返回顶部