2017-01-19 1 views
-2

안녕하세요 나는 다음과 같은 달성하기 위해 노력 해왔다 :오라클마다 두 개의 레코드 하나

key1, key2, val1, userid, receipttype, val2,val3,val4,date,val5 
1 0 0 1 3 0 0 0 18-JAN-17 1 
1 0 0 1 4 0 0 0 18-JAN-17 1 
1 0 0 114 3 0 0 0 18-JAN-17 1 
1 0 0 114 4 0 0 0 18-JAN-17 1 
1 0 0 1 3 0 0 0 18-JAN-17 1 
1 0 0 1 4 0 0 0 18-JAN-17 1 

이 테이블 어떻게 든 다음과 같은 결과를 얻으려고 :

key1, key2, val1, userid, receipttype, val2,val3,val4,date,val5,key1, key2, val1, userid, receipttype, val2,val3,val4,date,val5 
1,0,0,1,3,0,0,0,18-JAN-17,1 1,0,0,1 4,0,0,0,18-JAN-17,1 
1,0,0,114,3,0,0,0,18-JAN-17,1 1,0,0,114 4,0,0,0,18-JAN-17,1 

내가 많은 일을 내부 조인과 함께하지만 그것은 확실히 여기에 도움이되지 않습니다. 저는 피벗을 사용했지만 실제로는 도움이되지 않습니다.

원하는 결과를 얻기 위해 내가 무엇을 사용할 수 있는지 확실하지 않습니다.

그래서 두 레코드를 하나로 묶어야합니다. 3이있는 모든 레코드에 대해 4라는 두 번째 레코드와 쌍을 만들어야하고 사용자 ID도 동일해야합니다.

감사합니다.

답변

0

모두 내적 참여가 필요합니다. 테이블을 두 번 나열해야합니다.

테이블은 tbl라고 가정하면

SELECT a.key1, b.key1 
FROM tbl a INNER JOIN tbl b ON a.userid = b.userid 
WHERE a.receipttype = 3 
AND b.receipttype = 4 
+0

안녕 WW는 내부가 하나의 사용자 ID로 여러 레코드가있는 경우에는 작동하지 조인하지 않을까요? – chancelance

+0

여러 레코드가있는 경우 어떻게 페어링 될 것으로 예상합니까? 무슨 일이 벌어 질지 결정하는 것은 무엇입니까? 또는 결과를 한 행으로 스쿼시하고 싶습니까? –

+0

나는 날짜별로 주문하고 있으므로 매 3 개마다 쌍을 이뤄야합니다. 사용자 ID 1 기록이 있습니다. 3 기록이 있습니다. 날짜는이며,이 두 날짜는 페어링되어야합니다. 그러나 까다로운 부분 인 1의 UserID가 여러 개있을 수 있습니다. 다른 말로하면 두 레코드마다 하나씩 붙여야합니다. – chancelance

관련 문제