내 데이터베이스 테이블은 다음과 같이이다 :고유 적용을 TOP (1) 함께
#tblMain ID Value CreatedDate ________________________________________ 1 25 2011-10-11 14:00:45.910 1 20 2011-10-26 14:00:12.910 2 27 2011-10-14 14:00:32.910 2 39 2011-10-14 14:00:28.910 2 54 2011-10-17 14:00:27.910 3 67 2011-10-25 14:00:16.910 3 79 2011-10-25 14:00:02.910 4 34 2011-10-26 14:00:14.910 4 24 2011-10-26 14:00:06.910 4 88 2011-10-26 14:00:47.910 5 12 2011-10-26 14:03:14.910 5 34 2011-10-26 14:04:06.910 5 55 2011-10-26 14:04:47.910
내가 다른 테이블에서 ID 목록을 얻을 것이다. 이제 ID를 기반으로이 테이블에 위의 테이블을 결합하고자합니다. MIN (CreatedDate)이있는 행의 값 필드가있는 모든 고유 ID에 대해 1 행을 가져올 수있는 방식으로, 즉 특정 ID에 대한 가장 오래된 값 . 모든 행에 대한 즉, 선택된 행은 다음과 같습니다
따라서SELECT TOP(1) * from #tblMain ORDER BY CreatedDate ASC where ID = 1
SELECT TOP(1) * from #tblMain ORDER BY CreatedDate ASC where ID = 2...and so on.
, 내 출력은 다음과 같이해야한다 :
ID Value CreatedDate X Y Z(other columns from other tables) _______________________________________________________________________________ 1 25 2011-10-11 14:00:45.910 2 39 2011-10-14 14:00:28.910 3 79 2011-10-25 14:00:02.910 4 24 2011-10-26 14:00:06.910 5 12 2011-10-26 14:03:14.910
신뢰 나, 나는 명확로 내 요구 사항을 제시하기 위해 최선을 시도했습니다 나는 분명히 불명확 한 것이 있다면 여전히 알려줄 것입니다. 빠른 응답을 기대합니다. 감사.
row_number에()가 누락되었습니다. 그러나이 쿼리를 실행 한 후에도 고유 ID, 즉 모든 ID에 대해 하나의 행을 얻지 못합니다. – MrClan
@PratikChandra : 감사합니다. 생략 된'()'을 수정했습니다. ID가 누락되었거나 특정 ID에 대해 여러 행이 표시됩니까? 전자의 경우 다른 테이블에 모든 ID에 해당하는 레코드가없는 것처럼 들립니다. 수정 된 쿼리와 같이 외부 조인으로 변경하면이를 수정해야합니다. 후자의 경우 다른 테이블에 일부 ID에 대해 여러 개의 해당 레코드가있는 것처럼 들리 -이 경우 다른 테이블에 대한 링크 조건을 구체화해야합니다. –
@PratikChandra : 다른 테이블이 없다면,이 대답은 당신에게'# tblMain'의 모든 고유 ID를 확실히 제공합니다. Mark가 이미 설명했듯이 문제는 다른 테이블에 있어야합니다. –