Q&A

  • 2개의 테이블을 조인하려는데 도와주세요???
안녕하세요!!

2개의 테이블이 있는데요

---------------------A 테이블 --------------------------------------
순번      일자             구분    수량        금액
1 20081217 1201 1 218000
-------------------------------------------------------------------

---------------------B 테이블 --------------------------------------
순번      일자             구분     직위        이름
1 20081217 1201 부지배인 홍길동
2 20081217 1201 점장 이영자
3 20081217 1201 조원 최진실
4 20081217 1201 조장 탁재훈
-------------------------------------------------------------------
여기서요 제가 구하고 싶은 것은요///
A 테이블과 B 테이블의 조인 조건키는 일자와  구분 값인데요.
최종적으로 원하는 값은 일자와 구분으로 한줄에 값들이
조회되는 것이예요

이런식이지요///
결과 예)20081217,1201,1,218000,부지배인,홍길동,점장,이영자,조원,최진실,조장,  탁재훈 ---전부 한줄에 뿌려주고 싶어요

도와주세요
1  COMMENTS
  • Profile
    프리러너 2008.12.20 00:12
    안녕하세요~~ ^^

    sql문으로만 원하는 것이라면 엄청 힘들것(노가다 & 속도 & 재활용...) 같은데요~~
    굿이 한다면 오라클 기준으로 설명해드리겠습니다.( 다시 한번 생각 해보세요.. 그냥 조인후 for문으로해서 키값에 따라서 한줄씩..)

    select
    a.순번, b.일자, c.구분
    , max( decode(rn,1,vw.직위,null)) as 직위1, max( decode(rn,1,구분,null)) as 구분1
    , max( decode(rn,2,vw.직위,null)) as 직위2, max( decode(rn,2,구분,null)) as 구분2
    , max( decode(rn,3,vw.직위,null)) as 직위3, max( decode(rn,3,구분,null)) as 구분3
    , max( decode(rn,4,vw.직위,null)) as 직위4, max( decode(rn,4,구분,null)) as 구분4
    , max( decode(rn,5,vw.직위,null)) as 직위5, max( decode(rn,5,구분,null)) as 구분5
    ........................ 최대 몇개까지 나올수 있는지 알고 있어야 됩니다.
    from
    A테이블 a
    , (
    select
    순번, 일자,구분,직위,이름
    , row_number() OVER (PARTITION BY 일자, 구분 ORDER BY 직위 ) as rn
    from B테이블
    ) vw
    where a.일자 = vw.일자
    and a.구분 = vw.구분
    group by vw.순번,vw.일자, vw.구분

    ※ 직접실행해서 확인은 못해지만.. 오류가 나오면 일부만 고치면 결과가 나올 겁니다.
    혹시 문제가 있던지 질문 사항이 있으면 다시 올려주시면 답변 해 드리겠습니다....