2014-07-18 2 views
0

SQL Server를 사용 중입니다.MAX 조건의 단일 내부 조인

나는이 :

표 A :

id1 
    1  
    2  

표 B :

id1 id2 data2 
1 1 300 
1 1 400 

그러나 I :

id2  data2 
    1  300 
    1  400 

내가 INNER JOIN을 사용할 경우 나는거야 중복이 필요 없다. id1.

테이블 B에 id2 = id1이 아닌 경우 NULL 값이 필요하지 않기 때문에 LEFT JOIN을 사용할 수 없습니다.

어떻게 얻을 수

id1 id2 data2 
1 1 400 

어쩌면 그것은 MAX (데이터 2) 함수 내부 조인 사용하는 것이 가능

같은 하나 개의 레코드 만? 하지만 난 정확히 어떻게 모르겠어 ... 그리고 난 모든 테이블 2에서 MAX는 필요 없어요, 현재 레코드의 id2 = id1 인 문자열에서만.

답변

2

이 시도 :

SELECT A.id1, B.id2, MAX(B.data2) 
FROM A 
INNER JOIN B ON A.id1 = B.id2 
GROUP BY A.id1, B.id2 
2

을 할 수 있습니다 단지 최대 테이블이 의 데이터 방법은 다음과 같습니다

Select A.id1, A.id2 , max(B.data2) 
From A INNER JOIN B on 
A.id1=B.id2 
Group By A.id1 

는 희망이 도움이!