Sql server 访问最后一个关键字查询到SQL转换

Sql server 访问最后一个关键字查询到SQL转换,sql-server,ms-access,Sql Server,Ms Access,我想将带有最后一个关键字的Access查询转换为SQL Server 2005,但无法确定是否需要任何帮助 Access中的查询为 SELECT field1, field2, Last(field3) , Last(field4) , Last(DateField) FROM table GROUP BY field1, field2 HAVING (((Last(DateField)) Between #9/1/2012# And #9/30/2012#)); 我曾尝试在SQL中按降序对

我想将带有最后一个关键字的Access查询转换为SQL Server 2005,但无法确定是否需要任何帮助

Access中的查询为

SELECT field1, field2, Last(field3) , Last(field4) , Last(DateField) 
FROM table
GROUP BY field1, field2
HAVING (((Last(DateField)) Between #9/1/2012# And #9/30/2012#));
我曾尝试在SQL中按降序对Datefield进行排序,并在Datefield上使用了MIN关键字,但没有效果,而且在SQL中,我必须按所有字段分组,而不仅仅是按Access中的2个字段分组


提前感谢。

尝试
MAX
而不是
LAST
,如下所示:

SELECT field1, field2, MAX(field3) , MAX(field4) , MAX(DateField) 
FROM table
GROUP BY field1, field2
HAVING MAX(DateField) Between "9/1/2012" And "9/30/2012"

我一点也不明白这一点:如果按所有字段分组,我必须按所有字段分组,这相当于
选择DISTINCT
,执行聚合函数没有意义。

可能重复的字段可能重复。我不得不将MAX添加到字段3、4和Date字段中,以便将它们从组中删除,因为这就像一个符咒,谢谢。