2011-09-01 17 views
0

結合操作で構文エラーが発生しました。同じフィールド名を持つ2つの異なる表がありますが、フィールドの種類は異なります。 1つはオートナンバーで、もう1つはテキストフィールドです。ここに私のSQLがあります。いくつかの人が助けてくれますか?結合操作で構文エラーが発生しました

SELECT [SPO Data Entry Table].[SPO#], [Standard Brk].*, [Standard SubBrk].* 
FROM ([SPO Data Entry Table] INNER JOIN [Standard Brk] ON [SPO Data Entry Table].[SPO#] = CDBL(Standard Brk.[SPO#]) 
INNER JOIN [Standard SubBrk] ON [Standard Brk].[Test #] = [Standard SubBrk].[Unit No] 
WHERE [SPO Data Entry Table].[SPO#]=Val([Standard Brk].[SPO#]); 

SPOデータ入力表=オートナンバー
標準Brkのは=テキスト

+0

のためのマークアップを追加してください、あなたに与える参加したものと同じであるとして= さらにコードを読むと、あまりにもwhere句をドロップし、あなたのコード - 他の人があなたの質問を読んで(そして答えるのが)簡単になります。 – JW8

+0

どのようなSQL Serverのフレーバーを使用していますか? –

+0

'CDbl'と' Val'の使い方に加えて、テーブル/フィールド名にMS Accessを加えました。 –

答えて

2

あなたのCDBL

に標準Brkの周りのテーブル識別子が欠落しているあなたが持っているCDBL(Standard Brk.[SPO#])それがあるべきCDBL([Standard Brk].[SPO#])

また、私はあなたがの閉じ括弧の後にまっすぐに追加する必要があると思ってから直後にブラケットを閉じていない

EDIT - = - = - それは、内側が句

SELECT [SPO Data Entry Table].[SPO#], [Standard Brk].*, [Standard SubBrk].* 
FROM ([SPO Data Entry Table] INNER JOIN [Standard Brk] ON [SPO Data Entry Table].[SPO#] = CDBL([Standard Brk.[SPO#]])) INNER JOIN [Standard SubBrk] ON [Standard Brk].[Test #] = [Standard SubBrk].[Unit No] 
+0

構文エラーがWHEREの中にあるかどうかわかりません。クエリを実行しようとすると、それが強調表示されます。 – Dhoward

+0

WHERE [SPO DataEntry Table]。[SPO#])= Val([Standard Brk]。[SPO#]);これは私の問題があるようです。これらのフィールドは異なるタイプなのでWHERE句にする必要がありますか? – Dhoward

+0

@Dhoward:内部ジョイン基準を複製するwhere句を削除します –

関連する問題