2014-03-25 2 views
0

며칠 전 이전 버전으로 몇 년 후 Access 2013에서 작업 중이므로 내부 SQL 엔진을 일부 변경 한 것 같습니다. 다음과 같이 조인 쿼리에서 작업하고 있습니다.잘못된 액세스 2013 오류

SELECT T.STUKLIJSTNUMMER, SR.STUKLIJSTNUMMER, SR.SUB_STUKLIJSTNR 
FROM STUKREG AS SR 
INNER JOIN (SELECT * FROM STUKREGsubs2 WHERE SUB_STUKLIJSTNR<>'') AS T ON 
SR.STUKLIJSTNUMMER=T.SUB_STUKLIJSTNR; 

STUKREG는 자체 참조 테이블입니다. 다음과 같이 STUKREGsubs2 쿼리 (어떤이 예상대로 작동) 같습니다

SELECT S.STUKLIJSTNUMMER, SR.STUKLIJSTNUMMER, SR.SUB_STUKLIJSTNR 
FROM STUKREG AS SR INNER JOIN STUKREGsubs1 AS S ON 
SR.STUKLIJSTNUMMER=S.SUB_STUKLIJSTNR; 

이있는 중 STUKREGsubs1이 (예상대로 작동) 질의입니다 :

SELECT SR.STUKLIJSTNUMMER, SR.SUB_STUKLIJSTNR, VAL(SR.STUKLIJSTNUMMER) AS SORDER 
FROM STUKREG AS SR 
WHERE ABS='Sub' AND CSTR(VAL(SR.STUKLIJSTNUMMER))=SR.STUKLIJSTNUMMER 
ORDER BY SR.STUKLIJSTNUMMER; 

(이전 버전)는 항상 일했다 쿼리 내 지식에 따르면,하지만 지금 Access에서 불평 : '지정된 필드'STUKLIJSTNUMMER '는 SQL 문의 FROM 절에 나열된 둘 이상의 테이블을 참조 할 수 있습니다.' 나는 이것이 의미하는 바를 알고 있지만 오류가 발생하는 이유를 이해하지 못한다. 왜냐하면 나는 소스 테이블/쿼리를 명확히 구별하고 있기 때문이다. 조인 부분에 다른 쿼리가 사용 되었기 때문입니까? 어떤 도움을 주셔서 감사합니다!

+0

참조 된 쿼리를 추가했습니다. – ganzpopp

+0

'STUKREGsubs2'는'STUKREG subs2'이어야하고'STUKREGsubs1'도 같아야합니다 – Sal00m

+0

이것은 관련된 쿼리의 이름이기 때문에 그럴 수 없습니다. – ganzpopp

답변

1

결과 쿼리의 이름이 고유하도록 다른 테이블에서 같은 이름의 별칭을 지정해야합니다.

그래서 STUKREGsubs2 쿼리의 경우,이처럼 STUKLIJSTNUMMER - 출력 중 하나에 별칭을 추가 :

SELECT S.STUKLIJSTNUMMER, SR.STUKLIJSTNUMMER AS STUKLIJSTNUMMER_2, SR.SUB_STUKLIJSTNR 
FROM STUKREG AS SR INNER JOIN STUKREGsubs1 AS S ON 
SR.STUKLIJSTNUMMER=S.SUB_STUKLIJSTNR 

을 그리고, T.STUKLIJSTNUMMER 첫 번째 쿼리에서, 올바른 열을 참조하는지 확인 STUKREGsubs2 (STUKREGsubs1-query의 STUKLIJSTNUMMER 또는 STUKREG 테이블의 STUKLIJSTNUMMER_2).

+0

그게 전부입니다! 고마워요! – ganzpopp