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