0
好吧,我理解了HAVING子句的要點。我有一個問題,我想知道我是否可以按照我想要的方式解決問題。MS Access條款
我想使用ADODB.Recordset執行一個查詢,然後使用Filter函數篩選數據集。
問題是,此刻的查詢,看起來像這樣:
SELECT tblMT.Folder, tblMT.MTDATE, tblMT.Cust, Sum(tblMT.Hours)
FROM tblMT
GROUP BY tblMT.Folder, tblMT.MTDATE, tblMT.Cust
HAVING tblMT.Cust LIKE "TEST*" AND Min(tblMT.MTDATE)>=Date()-30 AND MAX(tblMT.MTDATE)<=Date()
ORDER BY tblMT.TheDATE DESC;
所以上面的作品如預期....但是我希望能夠使用tblMT.Cust作爲過濾器,而不必須保持重新查詢數據庫。如果我刪除它,我會得到:
標準表達式中的數據類型不匹配。
是我想要做的可能嗎?如果有人能指出我在正確的方向,這將是偉大的。
好的...類型不匹配是由於tblmt.mtdate不是日期字段或tblmt.hours不是數字字段而導致數據不是日期或不是數字當客戶不像'TEST *'或某些客戶時,你在mt.date中有一個NULL,而null不能與> =進行比較。如果你說'哪裏tblMt.cust不像'TEST *'',你仍然會得到錯誤。問題可能與數據或您的期望有關,您需要處理它。什麼數據類型是tblMT.hours和tblMt.MtDate? – xQbert
感謝您的洞察力。我知道表格內有數據異常,所以我可以檢查空值並查看會發生什麼。這是一個繼承的項目,我一直在慢慢正常化數據。 – Maxs728
@xQbert在他的評論結尾提出了一個非常重要的問題,你沒有回答。請做。 – Parfait