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 766 게시물 읽기
No. 766
[질문] 쿼리가 잘 안풀려요 도와주세요
작성자
강상원(wonsk)
작성일
2005-02-24 01:48
조회수
5,536

한 테이블에서 여러조건으로 데이터를 취득하려고 합니다만, 지식이 짧은 관계로 엄청 혼나고 있습니다...

테이블의 구성을 보면, 아래와 같이 되어있습니다.

 

TABLE NAME : AAA

( 날짜를 제외한 모든 항목이 CHAR 형식입니다)

 

NO STI ZKG WDAY FLG BAN EXP DASI KUBUN IDAY

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

TT917 777 1 2005-06-01 2 3 1 1 2004-07-20-00.00.00.000000

TT917 777 1 2005-01-01 3 1 1 1 2004-07-20-00.00.00.000000

TT917 777 1 2004-12-01 3 1 1 1 2004-07-20-00.00.00.000000

TT917 567 1 2014-09-02 3 8 1 1 2099-01-01-00.00.00.000000

TT917 567 1 2014-09-02 3 1 1 1 2004-07-20-00.00.00.000000

TT917 567 1 2008-08-01 3 1 1 1 2099-02-01-00.00.00.000000

TT917 666 1 2006-03-03 3 5 0 1 2004-08-11-00.00.00.000000

 

PRIMARY_KEY : NO, STI ,ZKG,WDAY,KUBUN IDAY(순서대로)
===============================================================================

조건으로는

1. 최대의 WDAY 을 구해야합니다. 그 조건으로는 FLG = 3 이어야하고 DASI =1 인 최대날짜() 를 구해야합니다.

2. 만약 최대의 날짜(WDAY) 를 구할수 있다면 그 날짜에 상응하는 BAN 을 구해야합니다. 단, WDAY 가 중복으로 존재가 하면 KUBUN IDAY 가 최신의 날짜에 상응하는 BAN 을 구해야합니다.

3. FLG = 3 이어야하고 DASI =1 이고 EXP 가 1 의 최대의 날짜(WDAY) 를 구해야 합니다.

열을 하나 만들어서 해야 될듯 싶어요.. 넘 어려워서... ㅠ. ㅠ

 

조건을 하나씩 걸어서 해보면 언제나 두 값이 나와 버립니다.

 

 

 

결과치

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

NO STI ZKG WDAY FLG BAN EXP DASI KUBUN IDAY

TT917 777 1 2005-01-01 3 1 1 1 2004-07-20-00.00.00.0000002005-06-01

TT917 567 1 2014-09-02 3 8 1 1 2099-01-01-00.00.00.0000002014-09-02

TT917 666 1 2006-03-03 3 5 0 1 2004-08-11-00.00.00.000000 2006-03-03

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

 

 

정녕 이게 쿼리를 날려 가능 하단말입니까??

WDAY2 가 안될수도 있는거 같은데요... 제 생각엔 .... 논리상으론 가능 하다고 하는데...

만약 WDAY2 가 안나올수가 있다면 어떻게 해야 할까요??

 

이걸로 벌써 2 주일이 넘어서고 있습니다.

고수님들의 절실한 도움을 원하는 초심자가....

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

select max(WDAY), BAN 
from A
where  FLG = 3
and DASI =1
and EXP = 1
and KUBUN IDAY = (select max(KUBUN IDAY)
      from A
      where  FLG = 3
      and DASI =1 )

 

제가 정확히 이해 못 할수도 있으니 이게 틀리다면 좀 더 자세한 정보를..

 

나그네님이 2005-03-02 18:11에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
769[질문] DB2 Query와 관련된 질문입니다. [1]
서복만
2005-02-25
5434
768DB2자료형을 구하고 싶습니다. [1]
신정민
2005-02-24
7212
767[질문] 특수 문자 insert 시.... [1]
김상대
2005-02-24
5450
766[질문] 쿼리가 잘 안풀려요 도와주세요 [1]
강상원
2005-02-24
5536
765pl-sql 변경 [1]
손님
2005-02-22
5399
764DB2 한글서적 추천해 주세요 ^0^ [1]
장미옥
2005-02-21
6897
763DB2는 칼럼 수정을 어떻게 하나요? [1]
이재훈
2005-02-19
7252
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다