2개의 질문입니다. 0 2 1,659

by Lonnie [SQL Query] select문 내에 sum 조인 [2016.07.18 17:18:45]


안녕하세요.

날이 많이 후덥지근하고, 때론 선선합니다.

 

2개의 질의 사항입니다.

 

1. loader로 테이블 병합

오렌지의 loader로 여러개의 테이블에서 추출한 데이터를 하나의 테이블로 데이터 병합이 가능한 것으로 알고 있습니다.

추출된 데이터를 load(적재)를 할 때에 다른 컬럼에 각각 넣고자 할 때 join문을 어떻게 사용하면 좋을까요?

즉, 생성된 A 테이블에 100개의 컬럼이 존재합니다.

여기서 55개는 1번 테이블에서 별도로 추출된 데이터를 삽입은 하였으나, 2번 테이블에서 추출된 값 중 1개의 컬럼을

추출하여 A 테이블 내에 58번 컬럼에 넣고자 합니다.

 

2. select문 내에서 sum을 여러번 사용해서 결과값을 추출하여 나타내고자 합니다.

select ...

sum (nvl(A, 0) + nvl(B, 0) + ...

over(partition by BASE) "1차년도",

sum (nvl(A, 0) + nvl(B, 0) + ...

over(partition by BASE) "2차년도"

from Table명

where BASE = 2016

order by BASE ASC

-> 결과값은 나타나지만 첫번째 sum값이 중복으로 나타내고 00936 에러가 뿜어져 나옵니다.

 

아~

테이블 병합으로 하루가 또 갑니다. @.@

by 마농 [2016.07.19 10:17:02]

오렌지 로더는 안써봐서 모르겠구요.
일단 임시테이블에 원본자료 각각을 그대로 올리시고
조인과 집계함수를 사용하시면 쉽게 해결되리라 봅니다.

 - 조인 : http://www.gurubee.net/lecture/1020
 - 집계 : http://www.gurubee.net/lecture/1031


by Lonnie [2016.07.20 10:08:22]

답변 감사합니다.

먼저 2번 사항은 자체해결(즉, select문에 선언하지 않아서 오류 발생)되었으며,

1번 사항은 현재 오렌지 프로그램으로 구현하여 2번 내용까지 추출은 잘 되었으나,

신규 테이블에 적재(load)하는 과정에서 오류를 분출하고 있는 상태라 내용 검사중에 있습니다.

제일 간편한 작업으로 시도하려고 하는 중인데,

수기로 join/merge로 통합으로 타겟 설정을 해야 하나 고려중에 있습니다.

하나의 테이블에 여러개의 테이블로부터 추출(복잡 추출)한 내용을 이전 작업이 안전하게(데이터 무결성 원칙) 로딩하는 것이 주요 목적이기 때문에 상당히 복잡하네요.

데이터 양이 많은 상태라 데이터 이관 후 검증작업이 수행되어야 하는데,

아~ 쉽지 않네요. 물론 하고 나면 별것 아니겠지만...

 

좋은 하루 되시길...

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입