アクセスデータベース用の複雑なクエリを作成しましたが、アクセスではそれが魅力のように機能します。しかし、OleDBを介してプログラムで同じクエリを実行しようとすると、「結合操作の構文エラー」という例外が発生します。これ以上の情報はありません。
SELECT
MainTable.Main_dbID,
D0.Kvp_Value AS ["Value"]
FROM (MainTable
INNER JOIN (
SELECT Main_dbID, Kvp_Value
FROM KVPTable
WHERE Kvp_Code IN (1, 2, 4)
) AS D0
ON D0.Main_dbID = MainTable.Main_dbID)
WHERE Main_Time <= ? AND Main_Time >= ?;
私はそれがまだ代表的であると感じた限り、クエリを分解しました。直接結合の代わりに副選択を使用している理由は、さまざまなキーをさまざまな列に配置するために、キー値テーブルに複数回結合する必要があるためです。私はそれを他の方法で機能させることができませんでした。
必要に応じて、C#2.0とVisualStudio2008を使用しています。