2015-01-26 2 views
0

간단하게 유지하기 위해 쿼리 필드는 ORDER ID, ORDER AMOUNT 및 ORDER TEXT입니다.중복 값을 스태킹하지 않고 스 트래들 쿼리 결과

내 문제는 일반적으로 다른 '주문 텍스트'를 제외한 모든 중복 데이터 (주문 ID, 주문 금액)가 포함 된 두 번째 레코드 (스택)를 반환하는 'ORDER TEXT'필드가 여러 개있는 것입니다. , 다른 텍스트입니다.

'ORDER TEXT'필드를 첫 번째 'ORDER TEXT'필드 (Straddled) 옆에 두거나 심지어 두 개의 긴 'ORDER TEXT'문자열을 DB2에 연결하는 것이 가능합니까?

Example of what is currently happening and what I want to happen

는 추가 테이블을 만들거나 어떤 방법으로 데이터베이스를 조작 할 수없는 가정합니다. 언제나처럼, 어떤 도움이 대단히 감사합니다!

+0

가능한 중복 사용할 수 here (버전 9.7.4부터 사용 가능) 기능에 대한

세부 사항 [당신이 그것을 사용하는 것이 때 SELF이 가입하고 무엇입니까? (http://stackoverflow.com/questions/3362038/ 자체 참여 및 사용의 필요성) – mustaccio

+0

Telaccion은 mustaccio와는 달리 LISTAGG() 함수를 사용하는 것이 좋습니다. – CRUTER

+0

DB2의 모든 버전에 LISTAGG 기능이있는 것은 아닙니다. 귀하가 귀하의 게시물을 게시하지 않았으므로 어디서나 일할 수있는 가장 안전한 옵션을 제안했습니다. – mustaccio

답변

2

은 다음과 같이 집계 함수의 LISTAGG를 사용해보십시오 :

SELECT ORDER_ID, ORDER_AMOUNT, 
    LISTAGG(ORDER_TEXT, ', ') WITHIN GROUP(ORDER BY ORDER_TEXT) 
    AS orders 
    FROM PS_PO_HDR 
    GROUP BY ORDER_ID, ORDER_AMOUNT 

그냥 사용하고있는 하나와 테이블 이름을 바꿉니다. 의