我想将带有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个字段。
提前致谢。
答案 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
,并且执行聚合函数“有道理。