时间的范围值如何与具体的时间段进行匹配?

下图为语句查询出每天9点到16点(早班)14点到21点(晚班)在岗人数

如何将结果匹配到报表每一行中?

报表是按照每小时去统计的。   比如时间段09到13,在岗人数就是9人,14到到16因为晚班来了,总数就是18人,16点以后因为早班下班了,就是9人。 如何能将人数匹配到报表每一行的时段中?

截图_20241216155352.png

报表如下图:  

问题就是时间范围值和前面具体的时间段如何匹配?

image.png

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

建议全部都在sql里面处理,得出每个人的时间段,然后按照时间段去count人数和,最后group by

-----------

在sql里把每个人的上下班时间的【小时】枚举出来,形成一个新的视图,然后直接按照【小时】去count不是更直接么

  • 初次学习帆软ing 初次学习帆软ing(提问者) 使用了 CROSS JOIN 和 CASE 语句: 通过CROSS JOIN 生成小时的时段列表,然后使用 CASE 语句判断员工是否在岗。 将小时列表与员工数据进行笛卡尔积,生成所有可能的时段与员工组合。 TO_INT(LEFT(B.ZBCKS1, 2)) <= H.HOUR: 确保当前时段大于等于上班时间。 H.HOUR < TO_INT(LEFT(B.ZBCJS2, 2)): 确保当前时段小于等于下班时间。
    2024-12-16 19:07 
  • 2关注人数
  • 35浏览人数
  • 最后回答于:2024-12-16 16:02
    请选择关闭问题的原因
    确定 取消
    返回顶部