2015-06-16 51 views
0

enter image description here 我有3個表:供應商,賬單和付款。每個供應商都有付款和賬單。我想檢索這樣的報告:數據類型不匹配標準表達式「加入3個表」

供應商名稱|總費用|總付款|平衡

對於由2 DateTimePickers指定的特定時間段。

這是我的SQL查詢:

OleDbCommand cmd = new OleDbCommand("select c.sup_Name,c.sup_Place,sum(a.bill_Total),sum(d.pa_Value) 
from (suppliers c left JOIN bills a 
on c.sup_Id = a.bill_From) 
left join payments d on c.sup_Id = d.pa_To 
where (a.bill_Date >= '" + txbFrom.Text + "' and a.bill_Date <= '" + txbTo.Text + "') and (d.pa_EntryDate >= '" + txbFrom.Text + "' and d.pa_EntryDate <= '" + txbTo.Text + "') 
group by c.sup_Name,c.sup_Place order by c.sup_Name asc", objConn); 

OleDbDataReader dataReader = cmd.ExecuteReader();// Here the error appear. 
+0

使用參數化查詢,但我敢在MSACCESS確定日期應以''#,而不是」分隔。 –

+0

有更多信息可以提供嗎? – Elvn

+1

@ValAsensio,我添加了關係圖 –

回答

0

對於MySQL我不得不把日期轉換:dt = DateTime它可以很容易地從DateTimePicker提取。

dt.ToString("yyyy-MM-dd H:mm:ss"); 
+0

另外請注意,除非時間也被指定,時間默認爲00:00:00,所以如果檢查<=您可能需要先將時間設置爲23:59:59。我對兩者都使用了擴展方法。 – PaulF

+0

我找到了解決方案,感謝您的幫助,只是#日期#而不是'日期'。 –

相關問題