2013-12-15 4 views
0

Я просто изучаю SQL, поэтому я немного борюсь за выпуск выходных данных, которые я бы хотел.SQL Server: выбор строк с последней датой для каждой части

Пусть у меня есть таблица X показано ниже:

-------Date ------- Part ------- Value 

01-01-2005   A   200 

01-01-2006   A   100 

01-01-2007   A   300 

02-02-2010   B   450 

02-02-2011   B   320 

и с X Я хотел бы получить эти:

-------Date ------- Part ------- Value 

01-01-2007   A   300 

02-02-2011   B   320 

В основном то, что я хочу сделать, это получить за каждый отдельный часть только одна запись - тот, у которого есть последняя дата. Столбец значений должен оставаться в результате!

Как это сделать (если это возможно)? Буду признателен за любую помощь.

+0

возможно дубликат [Макс в сроки с даты дублей] (http://stackoverflow.com/questions/4041730/max-within-a-timeframe-with-date-duplicates) –

ответ

2
;WITH LatestRecords 
AS 
    (
    SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY PART ORDER BY [Date] DESC) 
    FROM TABLEX 
) 
SELECT * FROM LatestRecords 
WHERE rn = 1 
Смежные вопросы