2017-10-13 1 views
0

내가 가입해야하는 여러 테이블이 있습니다.이 테이블은이 도면 테이블의 도면 테이블에서 결과 세트에 차례로 가입해야합니다. 각 파트에는 여러 도면 번호와 수정본이 있습니다. 최대 드로잉 번호와 그 부분의 최대 개정 번호가 필요합니다.복합 최대 쿼리

는 내가이 작업을 수행 할 수 있습니다 실현 : 다른 필드를 얻기 위해 자체에 합류 한 후

select part, max(dwg_num) 
from drawingtable 
group by part 

을 수행 한 후 내장이 최대 개정을 얻을 수있는 다른 쿼리하고 있지만, 모든 좀 지저분한 것 같아요. 누군가가 더 좋은 방법으로 아이디어를 얻었는지 궁금합니다.

+3

질문이 명확하지 않습니다. 테이블 구조 및 샘플 데이터를 포함하십시오. –

답변

1

ROW_NUMBER을 사용하여 부품 당 그리기 가능 레코드의 순위를 매기고 최상의 순위를 유지하십시오.

select * 
from 
(
    select 
    drawingtable.*, 
    row_number() over (partition by part order by dwg_num desc, rev_num desc) as rn 
    from drawingtable 
) ranked 
where rn = 1; 
+0

이것은 내가 찾고있는 것만 큼 훌륭합니다! 각각의 경우에 정확한 도면 번호와 수정본을 반환하지만 중복 된 것은 없습니다. – JamesP