2014-04-09 4 views
0

테이블의 열에서 가장 최근의 두 날짜를 선택하는 것이 가능한지 알고 싶습니다. 아래의 간단한 예를 참조하십시오. 나는 max 함수를 사용할 수있는 최대 날짜를 얻는 것을 안다. 나는 또한 내 첫 max 쿼리에서 반환 된 첫 번째 날짜보다 작아야한다는 조건을 가진 다른 최대 문을 수행 할 수 있다는 것을 알고있다. 한 쿼리에서이 작업을 수행 할 수있는 방법이 있다면 궁금합니다. SQL 서버 테이블에서 최대 두 날짜 선택

Name  DateAdded 
ABC  2014-04-20 
ABC  2014-04-20 
ABC  2014-03-01 
ABC  2014-03-01 
ABC  2014-02-25 
ABC  2014-05-22 
ABC  2014-04-01 

반환해야하는 두 날짜가

즉 2014년 5월 22일 & 2014년 4월 20일, 가장 최근의 두 있습니다.

내가 언급해야

죄송 편집은 그래 난 두 distnict 날짜를합니다. 테이블이 크고 날짜가 정렬되지 않습니다. 나는 테이블을 분류하는 것이 아주 느릴 수 있다고 생각한다.

+0

당신이 고유 한 값을 반환 하시겠습니까? '2014-05-22 '로 2 개의 레코드를 가지고 있다면, 이것을 2014-05-22와 2014-04-20으로 두 번 돌려 주겠습니까? –

+0

@Bartdude 예 귀하의 의견을 본 후에 제 질문을 편집했습니다. 나는 두 개의 별개의 가치관을 원한다고 말 했어야했다. – mHelpMe

답변

1
SELECT distinct top 2 Dateadded 
FROM table 
ORDER BY Dateadded desc 
0
select top(2) DateAdded 
from table 
order by DateAdded DESC 
+0

2014-05-22의 날짜 3 개가 2014-05-22를 두 번 반환하지 않는다고 말하면 어떻게 되나요? 나는 큰 테이블에 대해 언급하는 것을 잊어 버렸기 때문에 내 질문을 편집 할 것이고 아주 느릴 수도 있습니다. – mHelpMe

+0

DateAdded 컬럼의 인덱스를 사용하면 큰 테이블에서 더 느려지지 않을 것입니다. 고유 한 날짜 만 얻으려면 'distinct'또는 'Group by DateAdded'를 사용하십시오. – dean

0

이 시도 :

 
select distinct top(2) format(Dateadded ,'yyyy-MM-dd') as Dateadded 
from TableName 
order by Dateadded DESC