2014-04-15 4 views
0

좋아요,이 쿼리는 실행되지 않고 데이터 형식 불일치 오류를 반환합니다. 이 오류는 WHERE 절의 하위 쿼리 내에서 두 테이블을 조인 할 때까지 시작되지 않았습니다.MS Access SQL 하위 쿼리에서 데이터 형식이 일치하지 않습니다.

가입하려고하는 두 테이블은 기본 쿼리에서 합쳐진 정확히 두 테이블입니다. 각 테이블에는 CRD 번호 열이 있습니다. 한 테이블에서는 텍스트로 저장되고 다른 테이블에서는 숫자로 저장됩니다. 이것이 CStr() 함수를 사용하여 숫자 열을 텍스트 열로 변환 한 이유입니다. 이 기본 쿼리 (스택 오버플로 감사드립니다!)에 대한 아름답게 작동하지만 하위 쿼리에서 동일한 정확한 조인을 시도 할 때 데이터 형식 불일치 오류가 받았습니다.

작은 화살표와 내가 (99 % 확실한) 문제를 일으키는 것으로 생각되는 부분을 강조하는 텍스트 상자가있는 그림입니다. 이 문제는 하위 쿼리에서이 두 테이블을 조인 할 때만 발생했습니다. 조인이 제거되면 쿼리가 실행됩니다. (하위 쿼리가 이렇게 쓸모없는 내 기본 쿼리를 만드는 올바른 결과를 반환하지 않습니다 만)

My issue

*의 표준 T-SQL 구문을 허용하도록 설정되어 내 모든 액세스 DB는, 그래서 나는이 태그를합니다 T-SQL

답변

0

차이점은 아마도 기본 쿼리에서 Crd Number가 null이지만 하위 쿼리에서는 제외 된 경우를 제외한다고 생각합니다. 테스트 할 수 있도록 Access가 설치되어 있지 않지만 하위 쿼리 where 절에 추가하면 작동 할 것입니다.

sp.CRD_NUMBER is not null and dtp.CRD_NUMBER is not null 

내가 함수에서는 CStr()가 null 값에 문제가 있다고 의심하지만, 다시, 그 차이를 만들 것입니다 있는지 확인하기 위해이 테스트 할 수 없습니다.

+0

감사합니다. 이미 시도했지만 대답이 아닌 것 같지만 아직 해결 중입니다. – FluffyKittens

+0

'SELECT sp.Trade_rep FROM [SalesPage 담당자] AS SP INNER JOIN [Ameriprise 담당자 DTP] sp.CRD_NUMBER = ON DTP DTP. CRD 번호] AS WHERE sp.trade_firm = '0000 ###'및 sp.CRD_NUMBER가 Null이 아니므로 및 sp.trade_office = dtp [Dealerbrch]; ' – FluffyKittens

+0

위 쿼리는 작동하지만 조인 식에 데이터 형식을 캐스팅 할 필요가 없었습니다. 이것은 나에게 이해가되지 않습니다. 왜 내가이 동일한 조인으로 처음 쿼리를 실행할 때 데이터 유형을 캐스팅해야하지만 쿼리를 실행할 때 똑같은 테이블에 똑같은 필드를 캐스팅 할 필요가 없습니까? 다시? 이 데이터베이스에 사용 된 링크 된 소스 테이블에 대해 절대적으로 0 업데이트를 만들었습니다. – FluffyKittens

관련 문제