Dbf ファイルをクエリしていますが、C# コンソール アプリケーションで 2 つのクエリを完全に結合したいと考えています。しかし、Microsoft.jet.oledb.4.0 では Full Join がサポートされていないようです。クエリを実行すると、次のエラーが表示されます。
IErrorInfo.GetDescription が E_FAIL(0x80004005) で失敗しました。
テーブルの詳細と目的のクエリ動作は次のとおりです。
購入および販売トランザクションは、テーブル Mtrans.DBF に格納されます。また、フィールド It_type は、購入トランザクションと販売トランザクションを区別するために使用されます。商品の販売数量と購入数量の両方を 1 行にまとめたいと考えています。
しかし、完全結合の代わりに左結合または内部結合または右結合を使用すると、クエリはエラーなしでスムーズに実行されます。これで私を助けてください。このエラーの回避策がある場合は、ここの専門家にいくつかのライトを点灯するように依頼します.
ここに私のクエリ式があります
OleDbDataAdapter da = new OleDbDataAdapter();
da = new OleDbDataAdapter("select purtran.it_name,purtran.it_code,
purtran.purcqnty,purtran.puruqnty,saltran.cqnty,
saltran.uqnty,saltran.avalue from
(select first(it_name) as
it_name,mtrans.it_code,sum(cqnty) as purcqnty,sum(uqnty)
as puruqnty
from mtrans
where date >=#" + fdt + "# and
date <=#" + tdt + "# and (voucher is null or len(voucher) =0)
and it_type = '01'
group by it_code) as purtran
full join
(select it_code,sum(cqnty) as cqnty,
sum(uqnty) as uqnty,sum(avalue) as avalue,first(tp1) as tp1
from mtrans
where date >=#" + fdt + "# and date <=#" + tdt + "#
and (voucher is null or len(voucher) = 0) and
it_type = '02' group by it_code)
saltran
on saltran.it_code = purtran.it_code ", con);
da.Fill(dt);