登录的员工总数

saurabh095

我想计算在特定时间登录系统的员工总数,以及每个员工的总工作时间。

我们有一个登录系统,该系统将数据存储在以下数据结构中:

1.EmpId
2.Status
3.Created

以上数据存储在下表中:

EmpId   Status  Created
1   In  2019-10-23 12:00:00
1   Out 2019-10-23 12:45:45
2   In  2019-10-23 14:25:40
1   In  2019-10-23 18:45:45
2   Out 2019-10-23 20:50:40
2   In  2019-10-24 1:27:24
3   In  2019-10-24 2:45:45

In之后是Out,反之亦然。员工的工作时间分布在几天之内,我的意思是进出工作可能跨越几天。

我需要实现以下内容:

如何计算在特定时间登录的员工人数,例如“ 2019-10-23 14:12:45”。

自开始以来如何计算所有员工的总工作时间?

塞巴斯蒂安·布罗施(Sebastian Brosch)

您可以使用此查询获取在特定时间注册的员工:

SELECT * 
FROM (
  SELECT EmpID, Created AS [In], LEAD(Created) OVER (PARTITION BY EmpID ORDER BY Created ASC) AS [Out]
  FROM table_name
  WHERE Status = 'In'
) t WHERE '2019-10-23 14:12:45' BETWEEN [In] AND [Out]
  OR '2019-10-23 14:12:45' >= [In] AND [Out] IS NULL;

...以及以下查询以获取每个员工的总工作时间作为TIME

SELECT EmpID, CONVERT(TIME(0), DATEADD(S, ISNULL(SUM(DATEDIFF(S, [In], [Out])), 0), 0), 108) AS work_hours 
FROM (
  SELECT EmpID, Created AS [In], LEAD(Created) OVER (PARTITION BY EmpID ORDER BY Created ASC) AS [Out]
  FROM table_name
  WHERE Status = 'In'
) t GROUP BY EmpID

dbfiddle.uk上的演示

您还可以在查询上定义和使用CTE(公用表表达式),而不是子选择,以获取带有登录时间和注销时间作为列的平面表:

WITH Employees(EmpID, [In], [Out]) AS
(
  SELECT EmpID, Created AS [In], LEAD(Created) OVER (PARTITION BY EmpID ORDER BY Created ASC) AS [Out]
  FROM table_name
  WHERE Status = 'In'
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得工资等级的员工总数

来自分类Dev

当前登录的员工的SQL列表

来自分类Dev

javascript如何快速获取员工数组中报告的总数

来自分类Dev

C#:检测员工登录密码时出错

来自分类Dev

如何计算在给定进入日期的特定日期可用的员工总数?

来自分类Dev

如何在两个表中按日期范围计算不同的用户总数和登录总数?

来自分类Dev

如何在两个表中按日期范围计算不同的用户总数和登录总数?

来自分类Dev

编写一个impex以将HMC登录属性更改为对所有员工启用

来自分类Dev

查看客户时如何使用Suitescript在Netsuite中获取当前登录的员工详细信息?

来自分类Dev

查看客户时,如何使用Suitescript在Netsuite中获取当前登录的员工详细信息?

来自分类Dev

使用 Azure AD 获取已登录用户的员工 ID 字段

来自分类Dev

FileNet-报告给定时间段内登录Filenet的用户总数

来自分类Dev

如何计算会话以显示站点上已登录用户的总数

来自分类Dev

消息计数器显示消息总数而不是 Laravel 中登录用户的计数

来自分类Dev

mongoose日期(不带时间)进行比较,并且按createdAt和staffId进行分组,并按汇总汇总每周,每月和每年的员工总数?

来自分类Dev

员工明细

来自分类Dev

支付员工

来自分类Dev

求和总数

来自分类Dev

图表总数

来自分类Dev

查询:名字不同的员工

来自分类Dev

AngularJs从工厂获得员工

来自分类Dev

MySQL检索员工的状态

来自分类Dev

MYSQL员工和家属

来自分类Dev

员工的多个日期范围

来自分类Dev

更新不同员工的managerId

来自分类Dev

员工时钟计算

来自分类Dev

员工角色的Concat行

来自分类Dev

列出薪水相同的员工

来自分类Dev

月活跃员工

Related 相关文章

热门标签

归档