将字段添加到表,该表是对另一个表的查询结果

时间:2017-02-06 21:59:11

标签: subquery ms-access-2010 default-value

在MS Access 2010中,我有两个表 - 一个包含候选者,另一个包含“包操作”。 Actions通过CandidateID字段与Candidates相关联,CandidateID字段是Candidates表中的自动编号。 Actions表具有每个操作的日期字段。我在Candidates字段中有一个字段,我想显示与该特定候选项相关的最新操作的操作类型,但似乎无法弄清楚如何操作。我已经尝试将子查询实现为默认值:

SELECT TOP 1 ActionT.ActionType FROM ActionT WHERE
(((ActionT.CandidateID)=13)) 
ORDER BY ActionT.DateCompleted DESC;

显然,这个查询本身只返回候选人13的最新动作,但理想情况下我想用=13替换=CandidateID,但我甚至无法填充该字段查询的结果是。我也尝试使用DLookup,但在尝试将其设为默认值时出错。我也尝试使用“修改查找”按钮,将查询和DLookup直接粘贴到单元格中,并尝试将字段类型从“文本”更改为“已计算”,但都无济于事。

新手MS Access用户在这里,所以我感谢你们可能有任何额外的解释。

提前致谢。

编辑:

为了清楚起见,我本身并不是在寻找查询。我想知道如何使上面的查询结果始终是候选表中字段的值。 (如果上面的代码需要更正,我对此持开放态度,但这不是我的问题。)

示例:候选人A在与他关联的动作表中有几个动作。他们是ResumeRecieved,ResumeReviewed和Interviewed。与受访者相关的日期是最新的,因此在候选人表格中,候选人A的状态应为“受访者”。然后我们决定扩展优惠,因此我们向ActionTable“OfferExtended”添加操作。

CandidateTable for Candidate A中的Status字段应自动更新为“OfferExtended”

1 个答案:

答案 0 :(得分:0)

在主SELECT STATEMENT中,您需要使用DateCompleted按降序排列的嵌套SELECT STATEMENT,以获取每个CondidateId的最新DateCompleted。

以下应该为您解决问题:

SELECT con.Id, 
       con.Name, 
       (SELECT TOP 1 ActionType FROM ActionT 
        WHERE CandidateId = con.Id ORDER BY DateCompleted DESC) AS ActionType
FROM Candidates AS con