アクセス2010を使用しています。
3 つのテーブル間で操作を実行しようとしています。1 番目と 2 番目のテーブルには同一の ID フィールドがあるため、これを使用して結合されます。2 番目と 3 番目のテーブルには部門の ID があるため、これを使用して結合されます。ただし、2 番目のテーブルのすべての ID が 3 番目のテーブルに存在するわけではありません。
最初のテーブルのフィールドを更新するクエリを実行しようとしています。このクエリは、2 番目のテーブルの部門 ID が 3 番目のテーブルに存在するかどうかを判断します。存在する場合は、その 3 番目のテーブル (部門 ID 氏名) の別のフィールドを使用して、最初のテーブルを更新します。そうでない場合は、2 番目のテーブルの既存の部門 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]);