1

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

提前致谢。

4

1 回答 1

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,并且执行聚合函数没有意义。

于 2012-11-15T18:07:54.933 回答