【发布时间】:2017-08-23 02:01:27
【问题描述】:
我在 MS ACCESS 2013 中有一个如下所示的表:
Id Department Status FollowingDept ActualArea
1000 Thinkerers Thinking Thinkerer Thinkerer
1000 Drawers OnDrawBoard Drawers Drawers
1000 MaterialPlan To Plan MaterialPlan MaterialPlan
1000 Painters MatNeeded MaterialPlan
1000 Builders DrawsNeeded Drawers
该表给出了一个 ID,该 ID 必须通过五个部门,每个部门至少有 5 个不同的状态。
每个状态都有一个 FollowDept 值,例如 *Department* Thinkerers 具有状态 MoreCoffeeNow,这意味着 *FollowingDept* Drawers。
除 ActualArea 之外的所有列都是从查询提要中获取值的列。
ActualArea 是一个 Expr,我在其中插入了这个逻辑:
Iif(FollowingDept = Department, FollowingDept, "")
我的逻辑很简单,如果FollowingDept和Department一致,那么ID的ActualArea就从FollowingDept获取值。
但正如您所见,在极少数情况下,ID 就像我上面的示例一样,其中 3 个部门与 FollowDept 重合。这种情况很少见,但我想在 Access 中添加优先级。
Thinkerers 具有最高优先级,然后是 MaterialPlan,然后是 Drawers,然后是 Builders,最后是 Painters。因此,按照相同的示例,在 ActualArea 获得 3 个值之后,Access 将执行另一个查询或子查询或其他任何内容,它将评估每个值的优先级,并且只留下具有最高优先级的那个。所以在本例中,Thinkerers 获得最高优先级,而其他两个值从 ActualArea 列中消除。
请记住,有超过 500 个不同的 ID,每个 id 重复 5 次,因此要评估的总记录将是 2500。
【问题讨论】:
标签: subquery ms-access-2013 ms-access-2016