首页 > 解决方案 > 根据进出时间员工出勤率计算“工作时间”

问题描述

我正在使用 Power bi,我想根据员工进出公司的时间来计算他们的工作时间。这是一个数据样本,属性表 假设总小时数应为 7 小时 8 分钟。所以,员工出去什么都不做的时间。就我而言,我应该排除从 OUT 2:04:20 到 IN 3:09:46 大约 1 小时的时间。

标签: sqldatetimepowerbidax

解决方案


out您可以为每个计算下一个in并取差:

select t.employee_id,
       sum(datediff(second, local_time, next_local_time)) as diff_seconds
from (select t.*,
             lead(local_time) over (partition by employee_id order by local_time) as next_local_time
     from t
    ) t
where action = 'IN'
group by t.employee_id;

注意:这假设INs 和OUTs 是交错的,因此一行中没有具有相同操作的行。

这也以秒为单位给出结果 - 可以转换为十进制小时数或您想要的任何其他特定格式。


推荐阅读