一年中有过三次连续请假大于两天的员工

如下是某企业 2009 年内的员工请假记录表LeaveRecords,员工每次请假的起始日期和结束日期都会记录在内:

..

下表是员工的详细信息表Employees

..

请找出这一年中有过连续 3 次请假大于 2 天的员工。

首先要将请假表中每一条记录的请假时间计算出来,然后利用跨行计算,来寻找附近 3 条记录请假时间都大于 2 天的情况。


A
1 =T("LeaveRecords.txt")
2 =T("Employees.txt").keys(ID)
3 =A1.group(Employee;~.(EndDate-StartDate):Length)
4 =A3.select(Length.pselect(~>2 && ~[-1]>2 && ~[-2]>2)>0)
5 =A4.(A2.find(Employee).Name)

https://try.esproc.com/splx?3rY

A1读出请假记录,A2读出员工信息。

A3将请假表按员工分组,同时生成新序表,将员工每次请假的天数都算出来并组成序列存放于字段Length中:

..

A4select筛选出Length中有过连续 3 次请假大于 2 天的记录:

..

A5根据找到的员工序号,到员工表中查找对应的名字:

..