2012-11-15 15 views
1

我想將最後一個關鍵字的Access查詢轉換爲SQL Server 2005,但無法弄清楚任何幫助。訪問最後一次關鍵字查詢到SQL轉換

在訪問查詢是

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中的兩個字段。

在此先感謝。

+0

可能的重複http://stackoverflow.com/questions/2281551/tsql-left-join-and-only-last-row-from-right –

+0

可能重複[轉換ms-access last()函數到sql服務器2008](http://stackoverflow.com/questions/12490325/convert-ms-access-last-function-to-sql-server-2008) – Pondlife

回答

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,並執行聚合函數將是沒有意義的。

+0

謝謝貝絲。我必須將MAX添加到字段3,4和日期字段中,以便從Group By中忽略它。它像魅力一樣工作,謝謝您。 – Asghar