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

时间:2012-11-15 17:52:00

标签: sql-server ms-access

我想将带有last关键字的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个字段。

提前致谢。

1 个答案:

答案 0 :(得分:3)

尝试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"

我根本不理解这一点:我必须按所有字段进行分组如果按所有字段分组,则相当于SELECT DISTINCT,并且执行聚合函数“有道理。