2016-11-06 3 views
0

이 개 CSV 파일,'FROM 절에 구문 오류'나는 다음과 같이 참여하기 위해 노력하고있어 야구 통계 두 개의 CSV 파일이

SELECT 
    Master.playerID, Batting.RBI 
FROM 
    ([Master.csv] INNER JOIN [Batting.csv]) 
ON 
    (Master.playerID=Batting.playerID) 

나 '합류 Jet를 사용하여 연결하는 C# 함수를 작성했습니다. 하나의 테이블 (예제 쿼리 SELECT COUNT(playerId) FROM [Master.csv]이 잘 작동 함)을 쿼리하는 데 문제가 없지만 어떤 이유로 든 조인을 좋아하지 않습니다.

MasterBatting 테이블이 인식되지 않기 때문입니까? 첨부 내 C# 코드의

관련 비트

string constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
    FilePath + ";Extended Properties='text;HDR=Yes;FMT=Delimited;';"; 
OleDbConnection conn = new OleDbConnection(constr); 
OleDbCommand command = new OleDbCommand(SQLStatement, conn); 
conn.Open(); 
OleDbDataAdapter sda = new OleDbDataAdapter(command); 
DataTable dt = new DataTable(); 
sda.Fill(dt); 
sda.Dispose(); 
command.Dispose(); 
conn.Dispose(); 

예외가 sda.Fill(dt) 라인에서 발생되고 SQLStatement 단순히 문자열 함수로 전달 쿼리 스트링이다.

+1

* 마스터 테이블과 타격 테이블이 인식되지 않기 때문입니까? * ... 예, 원본 별명을 테이블 별칭으로 식별해야합니다. 아래 @ GordonLinoff의 대답을 참조하십시오. – Parfait

답변

1

당신 add :

SELECT m.playerID, b.RBI 
FROM [Master.csv] as m INNER JOIN 
    [Batting.csv] as b 
    ON m.playerID = b.playerID; 

당신은 파일에서 얻을 수있는 고급 구문을해야 할 수도 있습니다, 그러나 이것은 구문 오류를 해결합니다.

+1

@GordonLinoff는 OP에서 별칭을 사용하기 때문에 @GordonLinoff는 테이블 별칭을 사용합니다. * Master * 및 * Batting *은 쿼리에 정의되어 있지 않습니다. – Parfait

+0

아빠! (말장난 의도). 감사합니다, Gordon과 Parfait - 문제가 해결되었습니다. – insomniac

관련 문제