l 问题
某企业打算给企业内的夫妻员工提供廉价购房福利,此福利只对夫妻都在企业内的家庭提供,且条件之一是夫妻的年龄和达到或超过70岁。下面是企业的员工信息表:
下面是职工关系表,记录着两职工之间的关系,雇员1与雇员2字段中保存的都是雇员ID,该表的关系没有重复:
试找出其中年龄和达到或超过70岁的家庭。
l 思路
大致思路:这个问题,只要将关系表中的雇员字段都替换为相应的雇员记录,而后就可以直接提取到相应雇员的出生日期,接下来计算年龄、年龄和以及筛选等操作也就非常容易了。
1. 首先从关系表中选出夫妻关系的员工组。
2. 将选出的记录的雇员字段都按照雇员ID替换为雇员表中对应的雇员记录。这样就可以直接从该表中提取到每名雇员的出生日期,从而算出年龄了。
3. 通过此表生成新序表,包括两名雇员的姓名及其年龄和。
4. 选出年龄大于等于70的记录即可。
l 代码
|
A |
|
1 |
=file("C:\\txt\\Employees.txt").import@t() |
雇员表 |
2 |
=file("C:\\txt\\EmpRel.txt").import@t() |
雇员关系表 |
3 |
=A2.select(Relationship=="Spouse") |
选出夫妻关系的雇员 |
4 |
>A1.keys(ID) |
为雇员表设置主键 |
5 |
>A3.switch(Emp1,A1;Emp2,A1) |
将雇员关系表中的两个雇员字段都替换为相应的记录 |
6 |
=A3.new(Emp1.Name:Emp1,Emp2.Name:Emp2, age(Emp1.Birthday)+age(Emp2.Birthday):TotalAge) |
利用雇员关系表生成新序表,同时算出每个家庭的年龄和 |
7 |
=A6.select(TotalAge>=70) |
筛选出年龄和大于等于70的家庭 |
l 结果