2016-08-01 9 views
1

내 시도/:액세스 업데이트 쿼리 w 하위 쿼리

내 목표이 (가) [dBranch] 필드의 연결 및 "공유 처분과 [데이터 출력 TABLE]의 [공유 처분] 열을 업데이트하는 것입니다
UPDATE [DATA OUTPUT TABLE] 
(
SELECT [DATA OUTPUT TABLE].[Journal Voucher ID], [DATA OUTPUT TABLE].[dBranch] AS Branch, [DATA OUTPUT TABLE].[dBranch] & " Shared Appropriation" AS [Shared Appropriation] 

FROM [DATA OUTPUT TABLE] 

WHERE [DATA OUTPUT TABLE].[Journal Voucher ID] In 

    (
    SELECT [DATA OUTPUT TABLE].[Journal Voucher ID] 
    FROM [DATA OUTPUT TABLE] 
    GROUP BY [DATA OUTPUT TABLE].[Journal Voucher ID] 
    HAVING 
     (((First([DATA OUTPUT TABLE].dBranch)="Navy") 
     AND 
     (Last([DATA OUTPUT TABLE].dBranch)="USMC")) 
     OR 
     ((First([DATA OUTPUT TABLE].dBranch)="USMC") 
     AND 
     (Last([DATA OUTPUT TABLE].dBranch)="Navy"))) 
) 
;) AS SATable 
SET [DATA OUTPUT TABLE].[Shared Appropriation] = SATable.[Shared Appropriation] 
Where [DATA OUTPUT TABLE].[Journal Voucher ID] = SATable.[Journal Voucher ID], [DATA OUTPUT TABLE].[dBranch] = SATable.[Branch]; 

"내 쿼리에서 (즉, 작동) :

SELECT [DATA OUTPUT TABLE].* 
FROM [DATA OUTPUT TABLE] 

WHERE ((([DATA OUTPUT TABLE].[Journal Voucher ID]) In (SELECT [DATA OUTPUT TABLE].[Journal Voucher ID] 
FROM [DATA OUTPUT TABLE] 
GROUP BY [DATA OUTPUT TABLE].[Journal Voucher ID] 
HAVING (((First([DATA OUTPUT TABLE].dBranch))="Navy") AND ((Last([DATA OUTPUT TABLE].dBranch))="USMC")) OR (((First([DATA OUTPUT TABLE].dBranch))="USMC") AND ((Last([DATA OUTPUT TABLE].dBranch))="Navy"));))); 

내 생각은 작업 쿼리에 대해, 별명, SATable을 만들고 업데이트 쿼리에 던져하는 것입니다.

+0

는, (SELECT [DATA ..... '? – cha

+0

시도가 잘못되었습니다 - 구문 오류입니까? 아니면 올바르게 업데이트되지 않습니까? – dbmitch

+0

@cha 그 후에 "구문에서 구문 오류가 발생합니다" – Schalton

답변

0

귀하의 쿼리는 다음에 다시 쓸 수있다 : 당신이 UPDATE`후 [데이터 출력 TABLE]`, 즉`UPDATE [DATA 출력 표]를 쉼표를 추가 할 때 발생하는

UPDATE [DATA OUTPUT TABLE] 
SET [DATA OUTPUT TABLE].[Shared Appropriation] = [dBranch] & " Shared Appropriation" 
Where [DATA OUTPUT TABLE].[Journal Voucher ID] IN 
    (
    SELECT [DATA OUTPUT TABLE].[Journal Voucher ID] 
    FROM [DATA OUTPUT TABLE] 
    GROUP BY [DATA OUTPUT TABLE].[Journal Voucher ID] 
    HAVING 
     (((First([DATA OUTPUT TABLE].dBranch)="Navy") 
     AND 
     (Last([DATA OUTPUT TABLE].dBranch)="USMC")) 
     OR 
     ((First([DATA OUTPUT TABLE].dBranch)="USMC") 
     AND 
     (Last([DATA OUTPUT TABLE].dBranch)="Navy"))) 
)