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 27215 게시물 읽기
No. 27215
데이터 조회시 문제점이 생겼어요.....
작성자
정명규
작성일
2006-07-06 16:17
조회수
1,107

a, b 두개의 테이블에는 고객에 대한 정보가 들어 있고

c 테이블에는 기본 코드 정보가 들어 있습니다.

 

a,b,c를 join해서 데이터를 가져올때

이 고객이 우수고객인지 아닌지를 b 테이블에 코드로

저장합니다.

우수고객이면 값이 들어가고 아니면 데이터가 들어가지 않습니다.

고객 조회시 우수고객으로 데이터가 들어가 있스면 조회가 문제

없는데 데이터가 들어가 있지 않은 데이터의 조회가 되지 않습니다.

 

답변 좀 부탁드립니다.

 

 

c table

 

code code1 code1nm

 

'13' '01' 우수

'13' '02' vip

 

이렇게 되어 있고 조회식은

select
a.rjcode,
a.rcode,
d.code1nm aptgu,
e.code1nm aptname,
f.code1nm giro,
g.code1nm bunki,
h.code1nm rkita
from dokja a, media b, dokcod d , dokcod e , dokcod f , dokcod g , dokcod h
where a.rjcode = '120630'
and a.rjcode = b.rjcode
and a.rcode = '00318'
and a.rcode = b.rcode
and (d.code = '04' and a.raptgu = d.code1)
and (e.code = '02' and a.rapt = e.code1)
and (f.code = '06' and a.rgiroflag = f.code1)
and (g.code = '14' and a.rbun = g.code1)
and ((h.code = '13' and a.rkita = h.code1 ) or (a.rkita is null))


이렇습니다

이부분에서 문제가 있는것 같은데 아떻게 수정을 해야 하는지 알수가 없군요,,,,,

and ((h.code = '13' and a.rkita = h.code1 ) or (a.rkita is null))

-------------------------------------------------------------

a.rkita field에 데이터가 들어 있어야만 조회가 제대로 되고 데이터가 없으면

조회가 안됩니다.

각 필드 마다 고유code값은 정해져 있고 code1값에 의해 code1nm명을

찿게 되어 있습니다.

a.raptgu = code '04'

a.rapt = code '02'

a.rgiroflag = code '06'

a.rbun = code '14'

a.rkita = code '13'

이런식으로 code값은 정해져 있습니다.

code1값이 들어갈때나 안 들어 갈때나 조회가 되어야 하는데 .....

자세한 답변을 부탁드립니다.

 

 

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

select
      a.rjcode,
      a.rcode,
      d.code1nm aptgu,
      e.code1nm aptname,
      f.code1nm giro,
      g.code1nm bunki,
      h.code1nm rkita
from  dokja a, media b, dokcod d , dokcod e , dokcod f , dokcod g , dokcod h
where    a.rjcode = '120630'
and      a.rjcode = b.rjcode
and      a.rcode = '00318'
and      a.rcode = b.rcode
and      (d.code = '04' and a.raptgu = d.code1)
and      (e.code = '02' and a.rapt = e.code1)
and      (f.code = '06' and a.rgiroflag = f.code1)
and      (g.code = '14' and a.rbun = g.code1)
and      ((h.code = '13' and a.rkita = h.code1 ) or (a.rkita is null))

 

위 쿼리를 보면 일단 a, b table이 rjcode 로 조회 되니 일단

select a.rjcode,
          a.rcode,

         max(decode(b.code, '04', code1nm)) aptgu,

         max(decode(b.code, '02', code1nm)) aptname,

         max(decode(b.code, '06', code1nm)) giro,

         max(decode(b.code, '14', code1nm)) bunki,

         max(decode(b.code, '13', code1nm, a.rkita, null,code1nm )) rkita

from

(select
      a.rjcode,
      a.rcode,

      a.raptgu,

      a.rapt,

      a.rgiroflag,

      a.rbun,

      a.rkita

from  dokja a

where    a.rjcode = '120630'
and      a.rcode = '00318'
union

select
      b.rjcode,
      b.rcode,

      '' raptgu,

      '' rapt,

      '' rgiroflag,

      '' rbun,

      '' rkita

from   media b

where    b.rjcode = '120630'
and      b.rcode = '00318'

) a, dokcod b

where ((a.raptgu = b.code1 OR a.rapt = b.code1 OR a.rgiroflag = b.code1 OR

          a.rbun = b.code1 OR a.rkita = b.code1 ) or (a.rkita is null))

group by a.rjcode,  a.rcode

로 해서 대상자를 먼저 만드신 후에 마스터 테이블하고 조인을 거시면 됩니다.

양쪽 OUTER Join과 같은 문제입니다.

석철희(math72)님이 2006-07-06 17:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
27218null값을 바꾸고 싶어요... [1]
손님
2006-07-06
1279
27217쿼리에 조건한개 추가했는데 엄청느려져요.. [6]
신황
2006-07-06
1765
27216insert... select... select 를 이용한 작업에 대한 질문이요~ [4]
박생규
2006-07-06
1453
27215데이터 조회시 문제점이 생겼어요..... [1]
정명규
2006-07-06
1107
27214isqlplus 실행이 안됩니다. [1]
딸기파우더
2006-07-06
851
27213TOAD 한글 메뉴얼 [5]
김기홍
2006-07-06
2873
27212not exists select 'X' 가 왜 쓰이는 건가요??? [1]
이영신
2006-07-06
8673
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다