好的,所以我理解HAVING子句的要点。我有一个问题,我想知道我是否可以按照我想要的方式解决这个问题。
我想使用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作为过滤器,而不必继续重新查询数据库。如果我将其删除,我会得到:
标准表达式中的数据类型不匹配。
我想做的是什么?如果有人能指出我正确的方向,这将是伟大的。
答案 0 :(得分:1)
好的...导致类型不匹配是因为tblmt.mtdate不是日期字段或者tblmt.hours不是数字字段而且您的数据不是日期或不是数字当顾客不喜欢'TEST *'时。或者,对于某些客户,mt.date中的NULL为null,而null不能与&gt; =进行比较。如果你说tblMt.cust不喜欢“TEST *”,你仍会得到错误。
数据或您的期望可能会出现问题,您需要处理它。
tblMT.hours和tblMt.MtDate有哪些数据类型?