0
从MS Access查询设计器开始,我构建了一个到目前为止的工作查询。如何创建“不具有”SQL命令
新的需求来自需要进一步过滤查询结果的地方。
SELECT Sum(0) AS [#], Contacts.COMPANY, Proposals.[PROP NAME], Projects.[START DATE], Projects.DESCRIPTION, Projects.[TOTAL FEE], Projects.[PROJ ID], Contacts.[FULL NAME], Projects.COUNTRY
FROM (Contacts INNER JOIN Proposals ON Contacts.[CON ID] = Proposals.[CON ID]) INNER JOIN Projects ON Proposals.[PROP ID] = Projects.[PROP ID]
GROUP BY Contacts.COMPANY, Proposals.[PROP NAME], Projects.[START DATE], Projects.DESCRIPTION, Projects.[TOTAL FEE], Projects.[PROJ ID], Contacts.[FULL NAME], Projects.COUNTRY, Projects.[PROJECT STATUS]
HAVING ((((Proposals.[PROP NAME]) Like "*" & [forms]![TempUI]![SrchText] & "*")) AND ((Projects.[START DATE]) Between [Forms]![TempUI]![txtRptDateStart] And [Forms]![TempUI]![txtRptDateEnd]) AND ((Projects.[PROJECT STATUS]) Like [forms]![TempUI]![cmb_scope]));
此查询将筛选基于srchtxt的内容(文本)
记录假设的结果时srchtxt包含单词“火”是这些
Prop Name
----------
Fire Pump repair
Fire damage repair
Wall restructure due to building fire
Fire water pump
Roof repair due to fire
现在我需要进一步过滤此排除单词“泵”,因为消防泵是一台机器,并与结构因火灾损坏无关
我试过使用AND
NOT LIKE
这样
HAVING ((((Proposals.[PROP NAME]) Like "*" & [forms]![TempUI]![SrchText] & "*") AND ((Proposals.[PROP NAME]) NOT LIKE [forms]![TempUI]![txtRPTexlude])) AND ((Projects.[START DATE]) Between [Forms]![TempUI]![txtRptDateStart] And [Forms]![TempUI]![txtRptDateEnd]) AND ((Projects.[PROJECT STATUS]) Like [forms]![TempUI]![cmb_scope]));
但它返回任何结果。
任何想法什么是适当的HAVING子句排除结果与单词“泵”的所有记录?
感谢
也许是因为缺少面膜吗? (((Proposals。[PROP NAME])Like“*”&[forms]![TempUI]![SrchText]&“*”)AND((Proposals。[PROP NAME])NOT LIKE“*”& [Forms]![TempUI]![txtRPTexlude]&“*”))AND((Projects。[START DATE])[Forms]![TempUI]![txtRptDateStart]和[Forms]![TempUI]![txtRptDateEnd ])AND((Projects。[PROJECT STATUS])Like“*”&[forms]![TempUI]![cmb_scope]&“*”));' – user5226582
仍然有空结果 – Wayne
所有'having'子句应该实际上在'where'条款中......'having'用于对合计值应用条件。 – JohnHC