我正在使用 Access 2010。
我正在尝试在三个表之间进行操作。第一个和第二个表具有相同的 ID 字段,因此使用它连接。第二个和第三个表有部门的 ID,因此使用它来连接。但是,并非第二个表中的所有 ID 都存在于第三个表中。
我正在尝试运行将更新第一个表中的字段的查询。该查询将确定第二个表中的部门 ID 是否存在于第三个表中。如果是这样,它将使用第三个表中的另一个字段(部门 ID 全名)来更新第一个表。如果没有,它会使用第二个表中的现有部门 ID 来更新第一个表。
这是我到目前为止所得到的:
Field: Relevant field in Table 1
Table: Table 1
Update To: IIf([Table 2].[Dept ID] In (SELECT [Table 3].[Dept ID] FROM [Table 3]),[Table 3].[Dept ID Full Name],[Table 2].[Dept ID])
我以前从来没有写过这样的东西,而且我对 Iif 查询完全陌生,所以我不确定这是否离得很近!目前我有一个错误:“操作必须使用可更新的查询”。
编辑 - 在 SQL 中:
UPDATE
([Table 1] INNER JOIN
[Table 2 ON [Table 1].[ID] = [Table 2].[ID]) INNER JOIN
[Table 3] ON [Table 2].[Dept ID] = [Table 3].[Dept ID]
SET [Table 1].[Dept] =
IIf([Table 2].[Dept ID] In (SELECT [Table 3].[Dept ID] FROM [Table 3]),
[Table 3].[Dept Name],[Table 2].[Dept ID]);