안녕들하십니까? 0 3 3,178

by 박영글 outer join [2012.03.14 16:17:39]


오라클클럽에서 살짝살짝 조금씩 자료를 훔쳐보다가 처음으로 글 남깁니다.

근데 처음부터 질문글이네요 ㅠㅠ

회사에 입사한지 얼마 되지 않았는데 실장님이 시험 문제를 턱 내주셔서요...

답답한 마음에 한번 올려봅니다.

- 문제 --------------------------------------------------------------------------------------------------------------------------------------------------------------------

   OPDACPT 테이블을 활용한 Query (select * from opdacpt where opddate = 20070505) 이다.

- 환자성명을 얻기위해 Opdacpt 테이블의 patid 필드와 Patmst 테이블의 patid 필드를 조인해서 patname 필드값을 가져온다.

- 주치의성명을 얻기위해 Opdacpt 테이블의 chrgdrid 필드와 Usrmst 테이블의 usrid 필드를 조인해서 usrkorname 필드값을 
  가져온다.

  (조인시 레코드가 생약되지 않기 위해 OUTER JOIN을 이용하시오)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

아래는 제가 여지까지 풀어본 결과입니다. 물론 에러투성입니다. 
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
select o.chrgdrid, u.usrid
from opdacpt o left outer join usrmst u
on o.patid = p.patid;
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

고수 선배님들. 조금만 도와주십시오. 즐거운 하루들 되시구요~

by 마농 [2012.03.14 16:55:46]
-- ANSI Join --
SELECT o.*
     , p.patname
     , u.usrkorname
  FROM opdacpt o
  LEFT OUTER JOIN Patmst p
    ON o.patid = p.patid
  LEFT OUTER JOIN Usrmst u
    ON o.chrgdrid = u.usrid
 WHERE opddate = '20070505'
;

-- Oracle Join --
SELECT o.*
     , p.patname
     , u.usrkorname
  FROM opdacpt o
     , Patmst p
     , Usrmst u
 WHERE opddate = '20070505'
   AND o.patid = p.patid(+)
   AND o.chrgdrid = u.usrid(+)
;

by 느훼훼 [2012.03.14 16:56:25]
이건 좀;;;

select b.patname, c.usrkorname
   from opdacpt a
        , Patmst   b
        , Isrmst    c
  where a.patid = b.patid(+)
      and a.chrgdrid = b.usrid(+)

ms-sql 쓰시면 알아서 위에 쿼리 변경해서 쓰세요.

by 박영글 [2012.03.14 17:15:07]

감사합니다 마농님 느훼훼님 잘배우고 갑니다

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