2012-09-05 4 views
2

내가 다시 (올바른) 50 행 끌어 쿼리가 있습니다업데이트 쿼리 MS 액세스에 가입

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 

아무도 도와 줄 수 있습니까? 당신의 선택 쿼리는 WHERE 절에 필터가

+0

첫 번째 쿼리는 'Authoriser Manager Name = 5'가있는 모든 레코드를 가져오고 두 번째 쿼리는 해당'Specialist '가있는 모든 레코드에 대해'Authoriser Manager Name '의 모든 값을 5로 설정하고'Penson Analyst '사실이다. –

+0

처음에는 WHERE 절에 조건부 항목이 하나 더 있습니다. "[Authorizer Manager Name] = 5"이지만 두 번째 항목에서는 SET 절에서이를 사용하고 있습니다 ... 물론 더 많은 행이 있습니다. 업데이트를 위해 반환 됨 ... – Ian

답변

2

참고 :

where [Authorizer Manager Name] = 5 

이것은 제한 5. 당신의 업데이트 쿼리에 '인가 자 관리자 이름을 "이 해당 행으로 설정 반환,이 필터가 없습니다. 오히려 갱신 쿼리는 "Pension Analyst 필드가 TRUE 일 때 Authorizer Manager Name을 5로 설정하십시오."라고 말합니다. 기본적으로 업데이트 쿼리는 선택한 쿼리의 수퍼 셋을 처리합니다.

간단히 말해, 선택 쿼리는 Pension Analyst가 TRUE 이고 권한 부여 관리자 이름이 이미 5 인 행을 반환하며 Pension Analyst가 TRUE 인 경우에만 업데이트가 반환됩니다.