2013-04-08 1 views
1

필자는 두 개의 가장 왼쪽 문자로 단축 될 때 다른 테이블의 키 필드로 조인 될 수있는 필드를 가지고 있습니다.계산 된 필드를 하나의 쿼리 내에서 테이블에 결합하기

이 작업을 수행 할 때 나는 항상 자신의 쿼리에서 LEFT ([FieldName], 2) 비트를 수행 한 다음 두 번째 쿼리에서 실제 조인을 수행해야합니다.

단일 쿼리 내에서이를 수행 할 수있는 방법이 있습니까?

다음은 왼쪽 가장 왼쪽에있는 문자 2 개를 떼어내는 쿼리 구문입니다. 이제 QueryA를 호출하자 여기

SELECT Left([TableA].[Field1],2) AS AbbrField1 
FROM [TableA]; 

해당 필드를 기반으로 다른 테이블에 QueryA을 조인 쿼리의 "AbbrField1"내가 처음 만들 했어; 의이 QueryB을 부르 자 :

SELECT [TableB].[Field2] 
FROM [QueryA] 
LEFT JOIN [TableB] ON [QueryA].[AbbrField1] = [TableB].[Field1]; 

답변

2

당신은 가입에 LEFT 기능을 사용하여 테이블을 JOIN 할 수 있어야한다 :

SELECT B.[Field2] 
FROM [TableA] as A 
LEFT JOIN [TableB] as B 
    ON Left(A.[Field1], 2) = B.[Field1]; 

는 두 번째 쿼리에 대한 필요성을 제거합니다.

참고 :이 내가`[TableB의]`은`SELECT` 부분에서 그것이 작동합니다 전에 당신이 만든`B` 별칭을 사용했지만, 잘 작동 2003

+0

MS Access에서 테스트되었습니다 그 후. 고맙습니다. –

+0

@MattHall 미안하지만, 나는 그것을 손가락으로 가리켰다. 다행입니다. – Taryn

관련 문제