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
운영게시판
최근게시물
Informix Q&A 1830 게시물 읽기
No. 1830
DB2 -> informix 로 바꾸는데 outer join구문을 어떻게 바꾸어야 하는지요?
작성자
자가리안(jagarian)
작성일
2003-10-23 11:09ⓒ
2003-10-30 10:57ⓜ
조회수
6,974

아래쿼리는 예제입니다 아래부분에서 질문을 하단에 적어 놓았습니다  ^^

############################################

/*발주서 리스트*/
SELECT CASE  T2.PUDT_MTGU
        WHEN '1' then '원부재료'
        WHEN '2' then '제품'
        WHEN '3' then '기타품목'
    END PUDT_MTGU       , --매입품목구분
    T2.PUDT_NO         PUDT_NO     ,   --발주서번호
    T1.PUHD_DATE       PUHD_DATE   ,   --발주일자
    T2.PUDT_PUGU       PUDT_PUGU   ,   --발주구분
    T1.PUDT_INQT       PUDT_INQT   ,   --품목코드
    T1.PUDT_MTNM       PUDT_MTNM   ,   --원료및자재명
    T1.PUDT_QTY        PUDT_QTY    ,   --발주수량
    T1.PUDT_PRIC       PUDT_PRIC   ,   --발주단가
    T1.PUDT_AMT        PUDT_AMT    ,   --발주금액
    T1.PUDT_FPRC       PUDT_FPRC   ,   --외화단가
    T1.PUDT_FAMT       PUDT_FAMT   ,   --외화금액
    T1.PUHD_OFFR       PUHD_OFFR   ,   --OFFER
    T1.PUHD_ORIG       PUHD_ORIG   ,   --원산지
    T4.CODE_NAME       ORIG_NAME   ,   --원산지명
    T1.PUHD_PYCN       PUHD_PYCN   ,   --가격조건
    T5.CODE_NAME       PYCN_NAME   ,   --가격조건명
    T1.PUDT_INDT       PUDT_INDT   ,   --납기요구일자
FROM PUCLIB.POPUHDPF T1
    LEFT OUTER JOIN PUCLIB.POPUDTPF T2 ON T1.PUDT_NO = T2.PUHD_NO
LEFT OUTER JOIN PUCLIB.PMCODEPF T4 ON T1.PUHD_ORIG = T4.CODE_GUBN||T4.CODE_CODE
LEFT OUTER JOIN PUCLIB.PMCODEPF T5 ON T1.PUHD_PYCN = T5.CODE_GUBN||T5.CODE_CODE
ORDER BY PUDT_NO, PUDT_SEQ
##########################################################

여기에서

LEFT OUTER JOIN PUCLIB.PMCODEPF T4 ON T1.PUHD_ORIG = T4.CODE_GUBN||T4.CODE_CODE
LEFT OUTER JOIN PUCLIB.PMCODEPF T5 ON T1.PUHD_PYCN = T5.CODE_GUBN||T5.CODE_CODE
..부분입니다...   LEFT OUTER JOIN 이거구분을 어떻게 써야 하는지 고수님에 조언을 부탁드립니다. 꾸뻑

그리고 SELECT CASE  부분은 어떻게 써야할까요?  ... ㅠ,ㅠ

인포믹스는 처음이라 db2 쿼리를 쓰다가 급하게 인포믹스를 쓰는 프로젝트를 하게 되었습니다..

 

인라인뷰가 안된다는 예길 듣고 해결방안을 모색하고 있는데요..  부탁드립니다

즐코딩 하시기를..

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

일단

1. outer join 문장은 그대로 써도 실행됩니다.

left outer join .. on 이런 방식은 ansi sql 문이라 모든 dbms에서 다 지원합니다.

 

바꾼다면

from aaaa , outer bbbb, outer cccc

where aaaa.id = bbbb.id

and    aaaa.id = cccc.id

이런식으로 하면 됩니다.

 

2. case when 문은 그대로 쓰면 됩니다.(단지 IDS 버전이 7.2 이하이면 안됩니다.

 

3. 인포믹스는 인라인뷰를 지원하지 않습니다.(아마 최대 약점이 아닌가 생각합니다.)

그래서 필요한 경우 temp table 을 써야 합니다.(이게시판에서 temp 로 검색하면 자세한 정보를 얻을 수 있을겁니다).

간단히 설명하면

select * from (select * from aaaa) ;

이렇다면

select * from aaaa into temp a_temp with no log;

select * from a_temp;

 

그럼 도움이 됬기를..

 

 

기도형(sahium)님이 2003-10-29 19:24에 작성한 댓글입니다.

기도형(sahium)님 감사 합니다

 

몇일간 이 게시판에서 답변을 기다렸는데...

바로 좋은 답변이 나와서 정말 감사합니다. 쉽게 초보자도 알아 볼수있게 답변해주시고 길게.. 시간을 내어주셔셔 정말 감사합니다..

 

여기 사랑넷이 따뜻해 보이네요..

개발자의 현실은 날씨만큼 춥게 느껴 집니다.

 

그럼이만

 

자가리안(jagarian)님이 2003-10-30 00:28에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
1833프로시져 결과값 별칭주기 아시는분... [1]
박준호
2003-10-27
4207
1832이런 결과는..? [1]
배원기
2003-10-27
3963
1831xp에서 인포믹스 서비스 실행 에러
김용
2003-10-24
4276
1830DB2 -> informix 로 바꾸는데 outer join구문을 어떻게 바꾸어야 하는지요? [2]
자가리안
2003-10-23
6974
1829index 데이타 크기는..어떻게 되나요????
smile
2003-10-22
3925
1828확장자가 dsn인 파일은 도대체 어떤 프로그램에서 만들어진건지 궁금합니다. [1]
데이타맨
2003-10-22
3783
1827소스상에서 load시에..
배원기
2003-10-22
3793
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다