2016-08-15 121 views
0

最新記錄我有一個SQL Server表具有以下數據:SQL - 我們會根據最後日期

enter image description here

我需要爲每種貨幣的最新記錄,這樣的結果應該是:

enter image description here

是否有可能得到這個結果只有一個選擇而沒有做嵌套選擇?

+0

可能重複[檢索每個組中的最後一條記錄](http://stackoverflow.com/questions/1313120 /檢索每個組中的最後一個記錄) –

+0

*沒有執行嵌套選擇*:爲什麼限制? – sstan

+0

另一個特定於SQL Server使用Row_Number函數的副本:http://stackoverflow.com/questions/4751913/retrieving-last-record-in-each-group-from-database-sql-server-2005-2008 –

回答

0

您可以使用窗口功能

;with cteBase as (
    Select *,RowNr=Row_Number() over(Partition By Currency Order By Date Desc) from YourTable 
) 
Select * from cteBase Where RowNr=1 
+0

Just好奇的投票。也就是說,我給了Pawel's WITH TIES的UpVote。他是更好的解決方案 –

1

您可以使用ORDER BYTIES如下:

SELECT TOP 1 WITH TIES * 
FROM Src 
ORDER BY ROW_NUMBER() OVER (PARTITION BY Currency ORDER BY ID DESC) 
+0

Plus1 WITH TIES !!!我總是忘記那個 –

-1

,因爲你的記錄在RATE更新日(接縫這種方式進入),這應該工作... (請修改限制,以匹配您的表中的貨幣數量)

SELECT ID,DISTINCT(貨幣),日期,表格表格的速率FROM表格順序貨幣, - 日期限制0,3