2014-06-08 62 views
0

我正在查詢一個Dbf文件,我想在C#控制檯應用程序中完全加入兩個查詢。但似乎Microsoft.jet.oledb.4.0不支持完全連接。我運行查詢時遇到以下錯誤。Microsoft.Jet.OLEDB.4.0中不支持完全外部聯接嗎?

IErrorInfo.GetDescription因E_FAIL(0x80004005)失敗。

這裏是表詳細信息和所需的查詢行爲。

採購和銷售交易存儲在表Mtrans.DBF中。 It_type字段用於區分採購交易和銷售交易。我希望將單個項目的銷售和採購數量合併到一個行中。

但是,查詢運行平穩沒有任何錯誤,如果我使用左或內部或右連接,而不是完全連接。請幫助我。如果有任何解決此錯誤的方法,我請求這裏的專家來指出一些情況。

這裏是我的查詢EXpresision

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); 

回答

1

號Access不支持FULL JOIN。您需要執行LEFT JOIN並將結果使用UNION ALL與RIGHT JOIN結合使用。看到這個tutorial

+0

非常感謝Ron Tornambe!它非常有幫助!你的「聯盟所有」建議工作得很好! –

+0

非常歡迎你! –