人员的班次时间明细和每小时时段如何进行匹配?

我的报表的是计算一个店面从10点到20点的每个时间段的客流数和销售数。

image.png

现在我想将员工的上下班时间去和每时段进行匹配,想实现下面的逻辑:

比如字段ZBCKS1(上班时间)是09开头,ZBCJS2(下班时间)是16开头,那这个人就会被统计在时段10到时段16的人数中,到17点的时段就将他剔除。

以下是计算当天员工的班次明细:

image.png

不知道怎么写判断在下面这个单元格里能算出当天时间段在岗人数 ;

image.png

FineReport 初次学习帆软ing 发布于 2024-12-16 13:42
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
蒲公英FZLJLv5初级互助
发布于2024-12-16 16:41

假设时间段的单元格是A2,在岗人数单元格加上如下的过滤条件

image.png

  • 初次学习帆软ing 初次学习帆软ing(提问者) 写语句了:通过CROSS JOIN 生成小时的时段列表,然后使用 CASE 语句判断员工是否在岗。 将小时列表与员工数据进行笛卡尔积,生成所有可能的时段与员工组合。 TO_INT(LEFT(B.ZBCKS1, 2)) <= H.HOUR:确保当前时段大于等于上班时间。 H.HOUR < TO_INT(LEFT(B.ZBCJS2, 2)):确保当前时段小于下班时间。
    2024-12-16 19:10 
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-12-16 13:53(编辑于 2024-12-16 13:53)
最佳回答
0
ScyalcireLv7中级互助
发布于2024-12-16 13:57

先把两个日期分别截取【小时】两位数,然后转为数字格式,在用range()函数把两个数值内的所有整数枚举出来,,步长为1,就能得到10,11,12,13,14,15,16,再分别去对应的时间点计入在岗人数

  • 4关注人数
  • 59浏览人数
  • 最后回答于:2024-12-16 16:41
    请选择关闭问题的原因
    确定 取消
    返回顶部