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
운영게시판
최근게시물
DB2 Q&A 3354 게시물 읽기
No. 3354
조건을 어떻게 해야할지 모르겠네요.
작성자
왕태봉(pelican7)
작성일
2013-02-23 15:55
조회수
4,963

 

현재 DB2를 이용하여 데이터를 추출하려는 쿼리를 만드는데, 사용자 측 요구로 

추출 조건이 변경되었는데 어떻게 쿼리를 해야할 지 잘 모르겠네요. 

여러분의 도움 부탁드립니다.

 

현재 변견전 조건은 문서 그룹 코드를 가져와서 보여주는 것이었는데, 조건이 바뀌어서 그룹내 문서를 가져오는 것입니다.

그런데 이때 문서는 버전관리를 하는데, 버전관리를 하는 타입에 따라 가져오는 방법이 다릅니다.

변경전 쿼리입니다.

 

SELECT CASE BM.BSN_CLAS_CD WHEN '14' THEN 14000 

WHEN '13' THEN 16000 

WHEN '12' THEN 12000 

WHEN '11' THEN 10000

WHEN '04' THEN 7000 + (FO.FORM_CD)

WHEN '02' THEN 3000 + (FO.FORM_CD) END AS SEQ,

CASE   WHEN BM.BSN_CLAS_CD IN ('02','04') THEN '1' 

WHEN BM.BSN_CLAS_CD IN ('11','12','13', '14') THEN '2' END AS LEVL,

IMG.IMG_IDX,

(select CD_DESC_KOR_NM FROM CBSCOMM.CT_COMM_CD_DESC WHERE CD_KIND_NO = 'L00135' AND CD_DESC_NO = fo.form_cd)|| '' FORM_NM,

FO.FORM_CD, 

'' AS IS_FOLD, 

FO.FORM_IDX,

FO.MEMO, 

BM.BSN_CLAS_CD,

BM.BND_IDX, 

VE.VER_NO, 

BM.CNSL_NO, 

BM.FORM_CLAS_COND, 

BM.MNG_DEPT_CD, 

'' as PRDT_CD

 FROM TEST.ET_BND_MSTR BM, TEST.ET_FORM FO, TEST.ET_VER VE, TEST.ET_IMG IMG

 WHERE BM.BND_IDX = FO.BND_IDX

  AND VE.FORM_IDX = FO.FORM_IDX    

AND VE.VER_IDX = IMG.VER_IDX

  AND FO.DEL_YN = '0'

  AND (BM.BSN_CLAS_CD = '02' OR BM.BSN_CLAS_CD IN ('04','11','12','13', '14'))

AND ((BM.DOC_NO = '13021800033' AND BM.DOC_SEQ = '01')) 

  AND (BM.BSN_CLAS_CD  LIKE '1%' OR BM.CUST_NO = '2013021800012')                                                            

 ORDER BY IMG.IMG_IDX WITH UR

 

위의 형태가 요청변경전 쿼리입니다.

그런데 요청이 바뀌어서 데이터를 추출하는 방법이 바뀌었는데, 우선 데이터를 가져오는 필드는 같습니다. 요청에 의해

TEST.ET_VER_MNG 테이블에서 doc_type 이라는 필드의 값에 의해 where 절에서 가져와야 하는 조건이 달라지는데 이때 조건을 

어떻게 줘야 할지 모르겠네요.

doc_type이 '0'과 '1' 일때는 ET_IMG 테이블의 VER_NO의 값이 TEST.ET_VER_MNG 테이블의 MAX_VER의 값과 같은 걸 가져오고,

doc_type이 '2' 인 경우는 ET_IMG 테이블의 VER_NO의 값이 TEST.ET_VER_MNG 테이블의 MAX_VER 보다 작거나 같은 걸로 가져오고

doc_type이 '3'인 경우는 ET_IMG 테이블의 VER_NO의 값이 TEST.ET_VER_MNG 테이블의 MNG_VER 보다 크거나 같은 값으로 데이터를

추출해야합니다.

 

이런 조건인 경우에 where 절에 조건 쿼리를 어떻게 주어야 할지 정말 모르겠네요.

아시는 분은 도움 부탁 드리겠습니다. 

좋은 하루되세요.

 

 

 

 

[Top]
No.
제목
작성자
작성일
조회
3358통계쿼리를 만들려고 하는데요 [1]
왕태봉
2013-03-13
5564
3357현재 시간 INSERT 하는 방법 [1]
왕태봉
2013-03-11
5182
3355db2리스토어 작업디렉토리 관련 질문합니다. [1]
db2사용자
2013-03-06
4833
3354조건을 어떻게 해야할지 모르겠네요.
왕태봉
2013-02-23
4963
3353연속된 JOIN 일 경우의 기준 테이블 [1]
dlkfjlfj
2013-02-09
6115
3352ODBC로 DB2연결하기 오류 [1]
달나라
2013-01-17
5220
3343DB2 테이블 단위 백업을 위한 스크립트 질문 [4]
최정곤
2012-12-21
7237
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다