Office中国论坛/Access中国论坛

标题: 在追加查询中不能用MAX吗 [打印本页]

作者: fatmingli    时间: 2013-4-2 16:48
标题: 在追加查询中不能用MAX吗
我在追加查询的WHERE语句中使用MAX,系统提示不能用合计函数,请问如何解决呢?


作者: Henry D. Sy    时间: 2013-4-2 17:07
有例子吗
作者: fatmingli    时间: 2013-4-2 17:14
不好意思,例子比较大不好放,我把语句放上来。

DoCmd.RunSQL "INSERT INTO 船舶审核计划临时表 ( 船舶名称, 管理公司, DOC证书号, SMC证书号, 船舶种类, 船籍港, 有效期, 发证日期 ) SELECT 体系船舶一览表.船舶名称, 体系公司一览表.公司名称, 体系船" & _
             "舶一览表.DOC编号, 体系船舶一览表.SMC编号, 体系船舶一览表.船舶种类, 体系船舶一览表.船籍港, 体系证书一览表.有效期, 体系证书一览表.发证日期 FROM ((体系船舶一览表 INNER JOIN 体系" & _
             "公司一览表 ON 体系船舶一览表.DOC编号 = 体系公司一览表.DOC编号) INNER JOIN 体系证书一览表 ON 体系船舶一览表.SMC编号 = 体系证书一览表.编号) INNER JOIN 船舶SMS审核计划表 ON 体系" & _
             "船舶一览表.船舶名称 = 船舶SMS审核计划表.船舶名称 WHERE (((Date()-Max([计划年月]))>90) AND ((体系船舶一览表.有效)=True) AND (((DateDiff('d',[发证日期],Now()))<1098 And (DateDiff('d',[发证日期],Now()))>732)  OR " & _
             "((DateDiff('d',Now(),[有效期]))<90 And (DateDiff('d',Now(),[有效期]))>0)));"

作者: todaynew    时间: 2013-4-2 21:05
fatmingli 发表于 2013-4-2 17:14
不好意思,例子比较大不好放,我把语句放上来。

DoCmd.RunSQL "INSERT INTO 船舶审核计划临时表 ( 船舶名 ...

用Dmax函数,不过你对时间的计算表达的意义不清。
作者: roych    时间: 2013-4-2 22:37
印象中分组查询是不能直接修改成追加查询的,如需追加,应当建立好分组查询,再以分组查询为数据源来做追加查询【大家可以试试,如果有误可能是我记错了。^_^】
作者: fatmingli    时间: 2013-4-3 08:51
这语句不加Date()-Max([计划年月]))>90这个条件运行的话一点问题也没有,加了就提示不能有合计函数,我看试试用其他方法吧。谢谢帮忙啦
作者: koutx    时间: 2013-4-3 08:55
Date()是什么样的格式?[计划年月]又是怎样的,这能相减吗!
作者: roych    时间: 2013-4-3 22:41
fatmingli 发表于 2013-4-3 08:51
这语句不加Date()-Max([计划年月]))>90这个条件运行的话一点问题也没有,加了就提示不能有合计函数,我看试 ...

1、按TodayNew的办法,将Max修改为DMax来处理,例如:Date()-DMax("计划年月","阁下的表名称")
2、按我的方法,先建立一个合计分组查询。然后再以这个查询为源建立追加查询。
作者: 轻风    时间: 2013-4-7 13:14
koutx 发表于 2013-4-3 08:55
Date()是什么样的格式?[计划年月]又是怎样的,这能相减吗!

Date()是当前日期吧




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3