我有一张表格,其中包含有关他们全天所做工作的信息。我需要获取每个任务的开始时间/结束时间。
目前,我能够提取每个任务的时间戳,但我希望创建“开始时间”和“结束时间”列。开始时间是前一行的时间戳,结束时间是当前行的时间戳。
有什么简单的方法可以做到这一点吗?这是我当前正在使用的查询。
select
Timestamp,
Sku,
Station,
Username,
ActionType
from OverallLogs
where
and ActionType = 'Put'
and Username = 'Name'
and timestamp < DateAdd(Day, DateDiff(Day, 0, GetDate())+1, 0)
AND timestamp >= DateAdd(Day, DateDiff(Day, 0, GetDate()), 0)
Order by timestamp desc
您可能想使用 sql cte 选项,在链接上寻找一些帮助,SQL 查找上一行和当前行之间的差异 https://stackoverflow.com/questions/23200189/sql-find-difference-between-previous-and-current-row
如果您的第一个记录是开始而下一个记录是该任务的结束,我的建议是保留单个活动记录。
如果您不想更改架构,则可以再添加一列来描述作为开始或结束的任务类型列。对你以后的查询有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)