一年中有过三次连续请假大于两天的员工
如下是某企业 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中:
A4用select筛选出Length中有过连续 3 次请假大于 2 天的记录:
A5根据找到的员工序号,到员工表中查找对应的名字:
LeaveRecords.txt
Employees.txt
练习一下 fjoin…
英文版