我有一个缺勤天数表,我正在尝试构建一个视图,该视图将查找同一个人的所有连续缺勤记录,并返回最早的连续日期和最新的连续日期以及总天数和总小时数,即返回单个缺勤期间的摘要信息,即使它是作为多个连续记录输入的。
下面是当前数据的外观示例,以及我试图返回的信息
原始数据:
AbsenceID PersonID AbsenceDay Days Hours
49334 9552 26/05/2020 0.5 3
49334 9552 27/05/2020 0.5 3
50000 9552 28/05/2020 1 7
50000 9552 29/05/2020 1 6
50010 9552 15/06/2020 1 6.5
50010 9552 16/06/2020 0.5 3.25
49334 8030 01/06/2020 0.5 4
49334 8030 02/06/2020 0.5 4
49334 8030 03/06/2020 0.5 4
49334 8030 04/06/2020 0.5 4
49334 8030 05/06/2020 0.5 4
49334 8030 06/06/2020 0.5 4
60012 8030 15/06/2020 0.5 3
60012 8030 16/06/2020 0.5 3
新视图:
AbsenceID PersonID PeriodStart PeriodEnd TotalDays TotalHours
49334 9552 26/05/2020 29/05/2020 3 19
50000 9552 26/05/2020 29/05/2020 3 19
50010 9552 15/06/2020 16/06/2020 1.5 9.75
49334 8030 01/06/2020 06/06/2020 3 24
60012 8030 15/06/2020 16/06/2020 1 6
1条答案
按热度按时间bogh5gae1#
这是一种缺口和孤岛问题。您可以通过减去一个枚举值(行号)来标识相邻的范围。相邻日期保持不变:
注意:这回答了您提出的问题:
返回单个缺勤期间的摘要信息,即使它是作为多个连续记录输入的。
你的抽样结果与第一次缺勤时间重复。这只返回该期间的一行。