database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41035 게시물 읽기
No. 41035
레프트 조인에서 서브쿼리 사용 방법
작성자
정재봉(teamas)
작성일
2015-12-21 17:57ⓒ
2015-12-21 17:59ⓜ
조회수
9,246

제목 대로 입니다. left outer join 에서 서브쿼리를 참조하려는데

 

오류가 나더군요. inner join에서는 되는데 안되어 방법을 찾고자 합니다.

 

쿼리는 다음과 같습니다.

 

select

e.name, e.jwid, ig.cigilja

from

sincheongja e

left join culipguk cg

on e.no = cg.no

and cg.chulipgubun = 'D'

and cg.cigilja >= e.strt_dt

and cg.cigilja <= e.end_dt

left join culipguk ig

on e.no = ig.no

abd ig.cigilja = (select min(ig1.cigilja) from culipguk ig1

where ig1.no = ig.no and ig1.chulipgubun = 'E'

and ig.cigilja >= cg.cigilja)

 

특히 서브쿼리에서 등호(=)가 아닌 부등호일때에는 어떻게 해야할지 모르겠네요..

 

등호일때는 서브쿼리를 join 단계에서 row_number()/partition 함수를 사용해서 처리하면

되었는데 부등호일때에는 어떻게 해야할지 모르겠습니다.

 

이 글에 대한 댓글이 총 2건 있습니다.

SELECT e.name, e.jwid
     , cg.cigilja AS cigilja_D
     , (SELECT MIN(ig1.cigilja)
          FROM culipguk ig1
         WHERE ig1.no           = cg.no
           AND ig1.cigilja     >= cg.cigilja
           AND ig1.chulipgubun  = 'E'
        ) AS cigilja_E
  FROM sincheongja e
  LEFT join culipguk cg
    ON cg.no           = e.no
   AND cg.cigilja     >= e.strt_dt
   AND cg.cigilja     <= e.end_dt
   AND cg.chulipgubun  = 'D'
;

마농(manon94)님이 2015-12-21 20:41에 작성한 댓글입니다.

감사합니다...

정재봉(teamas)님이 2016-01-06 17:15에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41038한 row로 쿼리 추출 방법? [1]
strider
2015-12-23
9061
41037초보 개발자 쿼리 질문 좀 드릴게요 [3]
황수영
2015-12-22
9301
41036컬럼값 비교.. 도움부탁드려요!! [3]
꿈희
2015-12-22
9957
41035레프트 조인에서 서브쿼리 사용 방법 [2]
정재봉
2015-12-21
9246
41034COMMIT 명령 후 멈춤현상
크리리리
2015-12-18
8914
41033달력에 사용할 쿼리 질문입니다. [1]
정준민
2015-12-16
9276
41032테이블스페이스 관련 질문입니다 ㅠㅠ 도와주세요~ [1]
지용이
2015-12-15
9152
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다