join 시 on 에다가 어떻게 걸어야될지 모르겠습니다. 도와주세요! 0 1 655

by 짱구 [Tibero] [2017.02.27 16:18:24]


이제 막 입사한 초보개발자입니다..

공부도중에 궁금한점이 있어 여쭈어 봅니다 ㅠ

 

테이블 구조는

마스터 테이블이

년도 순번 부서

디테일 테이블이

년도 순번 부서 월

이렇게 되어있습니다.

 

년도 순번 부서 1월 2월 3월 4월 5월 ....

 

이런식으로 디테일의 월별로 컬럼이 나열되는 방법이 있는지 궁금합니다.

 도움부탁드립니다 ㅠ

by jkson [2017.02.27 17:00:13]

아마도 행을 열로 변환하는 것을 여쭤보시는 것 같은데.. 쉬운 예시 하나 드릴게요.

with t as
(
select '2017' yyyy, 1 seq, 'A' dept, '1' mon, 100 val from dual union all
select '2017' yyyy, 2 seq, 'A' dept, '1' mon, 50 val from dual union all
select '2017' yyyy, 1 seq, 'A' dept, '2' mon, 200 val from dual union all
select '2017' yyyy, 1 seq, 'A' dept, '3' mon, 300 val from dual union all
select '2017' yyyy, 1 seq, 'A' dept, '4' mon, 500 val from dual union all
select '2017' yyyy, 2 seq, 'B' dept, '1' mon, 10  val from dual union all
select '2017' yyyy, 2 seq, 'B' dept, '2' mon, 400 val from dual union all
select '2017' yyyy, 2 seq, 'B' dept, '3' mon, 50  val from dual 
)
select yyyy, dept
, sum(decode(mon,'1',val)) val1
, sum(decode(mon,'2',val)) val2
, sum(decode(mon,'3',val)) val3
, sum(decode(mon,'4',val)) val4
from t
group by yyyy, dept

 

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