2012-02-27 1 views
0

SSMS 2008을 사용하고 있으며 많은 레코드를 반환하는 sproc로 데이터 세트를 만들었습니다. 그러나이 데이터 세트 내에서 동일한 값을 가질 수있는 날짜 열이 있습니다. 이제는이 데이터 세트의 최신 데이터 만 포함하도록 이러한 레코드를 필터링합니다. T-SQL에서는 어떻게합니까? (나는 단지 아래 2/5 기록을보고 싶다). 예를 들어기준과 일치하는 상위 N 개의 행을 지정하는 방법은 무엇입니까?

:

col A  col B  col C 
AAAAAA BBBBBB 2/5/2012 
AAAAA2 BBBBB2 2/5/2012 
AAAAA3 BBBBB3 2/1/2012 
AAAAA4 BBBBB4 1/25/2012 
AAAAA5 BBBBB5 1/25/2012 
AAAAA6 BBBBB6 1/10/2012 

나는 당신의 solutoin 안드레아스을했지만, 지금은 오류를 얻고있다 :

메시지 102, 수준 15, 상태 1, 줄 (74)의 구문이 잘못 근처 ') '.

select * 
from (
    select *, row_number() over(partition by [test_details_answers_expanded_view].[actual_date] 
    order by [test_details_answers_expanded_view].[actual_date] desc) rowno 
    from 
    (
Select 
    [test_details_answers_expanded_view].[event_log_id], 
... 
[test_details_answers_expanded_view].[actual_date], 
... 
FROM #TEMP_EVENT_LOG A 
JOIN [evolv_reports].[dbo].[test_header_rv] ON A.[event_log_id] = [test_header_rv].[event_log_id] 
CROSS APPLY [dbo].[fn_getTestSetupFormDetails](null, [test_header_rv].[test_setup_header_id]) AS [test_header] 
CROSS APPLY [dbo].[fn_getTestSetupFormDetails]([test_header].[test_setup_details_id], null) AS [test_details] 
JOIN [evolv_reports].[dbo].[test_details_answers_expanded_view] ON 
     [test_header_rv].[test_header_id] = [test_details_answers_expanded_view].[test_header_id] 
    AND [test_details].[test_setup_details_id] = [test_details_answers_expanded_view].[test_setup_details_id] 
Where 
(@TestHeaderCode Is Null OR [test_header].[test_header_code] = @TestHeaderCode) 
    AND (@TestHeaderID Is Null OR [test_header_rv].[test_header_id] = @TestHeaderID) 
) t 
where rowno = 1 

당신은 내가 잘못 여기에 무슨 짓을했는지 말해 줄 수 : 여기

는 코드인가?

답변

0

여기에 예를 들어 사용 ROW_NUMBER입니다 :

select * 
from (
    select *, row_number() over(partition by [col c] order by [col c] desc) rowno 
    from table 
) t 
where rowno = 1 
+0

네,하지만 나는 TOP 문을 사용하는 경우, 나는 그것을 선택하는 레코드 수를 알 필요가 없다? 나는 이것이 동적 인 솔루션이되기를 원한다. 행의 수에 관계없이 최신 레코드를 선택할 것이다. – salvationishere

+0

@salvationishere 귀하의 질문에 대한 오해, 제발 내 대답을 업데이 트하십시오. –

+0

Andreas, 내 개정 된 설명을 확인해 주시겠습니까? – salvationishere

관련 문제