2016-09-20 7 views
-1

My Data in the tables고유 값은

Simplification

는 지금은 표 B. 예를

* A will have records A1,A1,C1,D1 
* B will have records B1,B1,B1,B1 
* C will have records C1,C1 
* D will have records D1,E1 
* E will have only one record E1 

내가 들어

에 다른 값을 가질 표 A의 이름에 대한 기록을 원한다

A A1,A1,C1,D1 
D D1,E1 
와 같은 출력이 필요합니다.

나는 ListAgg 기능을 사용했지만 모든 기록을 제공합니다.

누구든지 기록을 얻는 방법을 알려줄 수 있습니까?

+0

자세한 내용은 첨부 된 그림을 참조하십시오. – anudeep

+2

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking- a-question/285557 # 285557 –

+0

스키마와 SQL을 입력하십시오 – EoinS

답변

1

흠. . . listagg()에 대해 고유 한 값을 얻고 싶지는 않습니다.

select a.name, listagg(b.value, ',') within group (order by a.id2) as val_str 
from a join 
    b 
    on a.id2 = b.id2 
group by a.name 
having min(b.value) <> max(b.value); 
+0

고든 고맙습니다. 내 문제를 해결하는 데 도움이되었습니다. – anudeep

-1

id2 필드에서 조인을 사용하여 두 표를 모두 조인 할 수 있습니다. 그러면 'Name'에 group by 절을 사용하여 select 쿼리를 사용할 수 있습니다. B 테이블에서 값의 연결된 문자열을 선택하기 위해 테이블과 group_concat (oracle은 목록입니다) 함수를 사용할 수 있습니다. .... mysql 쿼리를 사용하는 경우.