夫妻年龄和超过 70 岁的家庭

阅读(1880) 标签: 替换, 生成新序表, file, import, keys, switch, new, select,

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  结果