2013-04-16 1 views
1

나는 내가 포기했습니다 두려워,이 바이올린을 켜는에 한 시간 이상을 지출 한 후이 연결되었다 ...'형 식의 불일치'(MS 액세스 SQL)

A - 아마도 나는 SQL에 대한 경험이 없지만 쉬운 질문이다. 내가 (다른 변종들) Access에서이 작업을 할 때, 나는 '식의 형식이 일치'를 얻을 :

https://dl.dropboxusercontent.com/u/104521722/Vliegtuigmaatschappij%20-%20Database11.accdb

내가 Startpunt을보고 싶어

Eindpunt : 여기

SELECT Route_Leg_Passagier.[RouteID], Route_Leg_Passagier.[LegID], Leg.[Startpunt], Leg.[Eindpunt] 
FROM Route_Leg_Passagier, Leg 
WHERE Route_Leg_Passagier.[LegID] = Leg.[LegID] 
AND Route_Leg_Passagier.[RouteID] = '1'; 

가 액세스 파일의 RouteID이 1 인 경우 및 LegID이 엔티티 Route_Leg_Passagier에 저장되지만 StartpuntEindpunt은 엔터티 Leg에 저장됩니다.

이 문제가 불편을 드려 죄송합니다. 본 사이트에 대한 경험이 없습니다. 그러나 나를 비판해라. 그러면 고맙다. :)

답변

3

[RouteID]는 정수 값이 아닌가요? 이 경우, WHERE 조건은 다음과 같아야합니다

AND Route_Leg_Passagier.[RouteID] = 1; 

지수는 문자열이나 문자위한 일련 번호 데이터 형식입니다

+0

흠, (매우 빨리) 답변 해 주셔서 감사합니다. 아아, 아직 작동하지 않습니다. 즉, 나는 '1'을 단순히 1로 바꿨고, 같은 오류가 발생했습니다. – user2286565

+0

'RouteID'는 텍스트 데이터 유형입니다. 이는 합리적인 추측 이었지만 문제의 원인이 아닙니다. – HansUp

1

Route_Leg_PassagierID.LegID 값; 이는 사실 숫자 데이터 유형이며, 긴 정수의 특수 형식입니다. 은 텍스트 데이터 유형입니다. 그리고 당신의 DB는 그 필드를 사용하는 두 테이블 사이의 관계를 포함합니다.

다음 단계를 시도해보십시오

  1. 이 DB 파일의 백업 복사본을 만듭니다.
  2. Route_Leg_PassagierIDLeg 사이의 관계를 삭제하십시오.
  3. 의 데이터 형식을 long 정수로 변경하십시오.
  4. 다음 쿼리를 테스트하십시오. 원하는 경우, Leg.LegID의 데이터 유형을 수정 한 후
SELECT 
    rlp.Route_Leg_PassagierID, 
    rlp.LegID, 
    l.Startpunt, 
    l.Eindpunt 
FROM 
    Route_Leg_Passagier AS rlp 
    INNER JOIN Leg AS l 
    ON rlp.LegID = l.LegID 
WHERE rlp.RouteID='1'; 

또한 관계를 다시 만들 수 있습니다.