跟踪员工在办公室时间查询 - Oracle SQL Developer
Posted
技术标签:
【中文标题】跟踪员工在办公室时间查询 - Oracle SQL Developer【英文标题】:Tracking employees time in office query - Oracle SQL Developer 【发布时间】:2021-02-25 19:10:27 【问题描述】:尝试编写一个查询,该查询将从给定日期的最后一次进入时间减去第一次进入时间,以便我可以看到他们的第一次和最后一次操作之间的小时数。我可以通过将数据复制到我拥有的 python 脚本中轻松地做到这一点,但我想知道是否可以更改我的查询以轻松显示它?
Select req.CREATE_DATE FROM REQUESTS req
Inner join USERTABLE usr ON req.ID=usr.REQ_ID
WHERE usr.userID = 'EMPLOYEENAME'
ORDER BY req.CREATE_DATE DESC
;
【问题讨论】:
【参考方案1】:根据您发布的所有信息(以及可能的拼写错误 - 名字和姓氏属于 usertable
,而不是 requests
,对吧?),我想说这样的事情可能会起作用。
select trunc(req.create_date) datum,
max(req.create_date) - min(req.create_date) diff_in_days,
usr.first_name,
usr.surname
from requests req join usertable usr on req.id = usr.req_id
where usr.user_id = 'EMPLOYEENAME'
group by usr.first_name,
usr.surname,
trunc(req.create_date)
order by trunc(req.create_date) desc;
【讨论】:
我认为我在原始帖子中包含名字和姓氏引起了混淆。我了解您的查询在做什么,但在我的用例中不起作用。我已经重写了我的原始查询以删除那些。它现在只包含用户的所有操作,名字和姓氏与查询无关。 我想说,在这种情况下,您删除的内容无关紧要。如果我发布的查询不起作用(我认为它会),请发布示例数据,以便我们看到你有什么。此外,发布所需的结果(基于该示例)。 啊,您的 WHERE 语句中有一个下划线,这导致了问题。我现在正在运行它,但 DIFF_IN_DAYS 结果显示为 0。我将尝试自己修复它,使其成为 DIFF_IN_HOURS :) DATUM 字段显示为 25/02/21 00:00:00 - 我认为它正在删除 HH MM SS以上是关于跟踪员工在办公室时间查询 - Oracle SQL Developer的主要内容,如果未能解决你的问题,请参考以下文章