2

50行を戻すクエリがあります(これは正しいです):

select * from [Review Results], [Specialist Name Table]   
where [Authorizer Manager Name] = 5 
and [Specialist Name Table].[Penson Analyst] = TRUE
and [Review Results].[Authorizer Name] = [Specialist Name Table].[ID]

上記から更新クエリを作成しようとしていますが、これを正しく取得できないようです。これは私が使用しているクエリですが、50 行ではなく 461 行を更新する必要があります。

update
[Review Results] e
INNER JOIN [Specialist Name Table] s ON  e.[Authorizer Name] = s.[ID]
set e.[Authorizer Manager Name] = 5
where s.[Penson Analyst] = TRUE  

誰でも助けてもらえますか?

4

1 に答える 1

2

選択クエリの where 句にフィルターがあることに注意してください。

where [Authorizer Manager Name] = 5

これにより、返されるセットが「Authorizer Manager Name」が 5 の行に制限されます。更新クエリでは、このフィルターは存在しません。むしろ、更新クエリは、「Pension Analyst フィールドが TRUE の場合に Authorizer Manager Name を 5 に設定する」と言っています。したがって、基本的に、更新クエリは選択クエリのスーパーセットに対処しています。

つまり、select クエリは、Pension Analyst が TRUEであり、Authorizer Manager Name が既に 5である行を返し、更新は Pension Analyst が TRUE である行のみを返します。

于 2012-09-05T14:00:05.963 に答える