今天在Access中查询表中最大值时,出现了"
试图执行的查询中不包含作为合计函数一部分的特定表达式"错误,我的SQL语句如下:
select top 10 max(id) from article order by id desc
仔细检查SQL语句,并未没有错误,然后把该语句放入到SQL SERVER中执行,也能正确返回结果。真的很无奈了,在网上搜索解决方法,原来,在ACCESS中,如果语句中包含有聚合函数,那么语句select中除了聚合函数列外,其它所有列一定要在group by中。
改写查询语句:
select top 10 max(id) from article group by id order by id desc
执行成功.
如果朋友看的够仔细,也许你已经看出了问题,上面讲到的"如果语句中包含有聚合函数,那么语句select中除了聚合函数列外,其它所有列一定要在group by中",而我的例句"select top 10 max(id) from article order by id desc"中并没有包括其它列,为什么也要加group by呢?经测试后发现,原来是因为我加了order by id desc排序条件的原因,如果不加该排序条件,语句"select top 10 max(id) from Article"也是可以执行成功的。
一直都很少用Access,现在才发现Access与Sql Server比起来还真麻烦。
附:在Access同样需要添加group by的其它函数语句:
select min(id) from article group by id order by id desc
select count(id) from article group by id order by id desc
select sum(id) from article group by id order by id desc
等。r