2014-02-09 81 views
0

的我目前停留在以下任務:獲得最後一個記錄相同ColumnID的

我有一個看起來類同這一

| TableID | EntityID | InvoiceAmount | Date | 
|  1 | 46  | 300 000  | 14-01-2014 | 
|  2 | 232  | 2456,63  | 17-01-2014 | 
|  3 | 46  | 400 000  | 22-01-2014 | 
|  4 | 232  | 333 000  | 31-01-2014 | 
|  5 | 12  | 124   | 11-01-2014 | 
|  6 | 46  | 300 000  | 31-01-2014 | 

表我需要的是根據由ENTITYID最後的發票金額到日期列, 所以在EntityID 46的情況下,這將是31-01-2014,並且實體的值將是:300 000.

問題:有沒有辦法在SQL中執行此操作或者我有什麼其他選項?

非常感謝!

回答

1

SQL服務器> = 2005,最簡單的是使用排名功能像ROW_NUMBER

WITH CTE AS 
(
    SELECT TableID,EntityID,InvoiceAmount,Date, 
     RN = ROW_NUMBER() OVER (PARTITION BY EntityID ORDER BY Date DESC) 
    FROM dbo.TableName 
) 
SELECT InvoiceAmount FROM CTE 
WHERE RN = 1 
-- AND EntityID = 46 

Demo

+0

非常感謝蒂姆 – gberisha

相關問題