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 39413 게시물 읽기
No. 39413
쿼리 문의
작성자
진희(byulst)
작성일
2012-04-24 18:41ⓒ
2012-04-24 18:43ⓜ
조회수
4,258

안녕하세요.

데이터 쿼리 여쭤보려고 합니다 ㅠ.ㅠ

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

A테이블

컬럼1

13

23

33

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

B테이블

컬럼1 컬럼2

13 N

12 Y

11 N

23 Y

33 N

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

이렇게 두 테이블이 있는데요. A테이블을 기준으로 해서 B테이블을 조인해서 A테이블이 사용여부가 'Y' 이면 그대로 보여주고

A테이블의 사용여부가 'N' 인 데이터 중 A테이블의 컬럼1의 첫번째 자리와 B테이블의 컬럼1의 첫번째 자리와 같은 데이터중에

B테이블의 컬럼2의 데이터가 'Y' 인 max 데이터를 구하고 싶습니다.

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

결과 데이터

12

23

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

select decode(b.컬럼2, 'Y', a.컬럼1,(select max(컬럼1) from B테이블 where 컬럼2 = 'Y' and 컬럼1 like substr(a.컬럼1, 0, length(a.컬럼)-1) || '%') as aa

from A테이블 a, B테이블 b

where a.컬럼1 = b.컬럼1

and decode(b.컬럼2, 'Y', a.컬럼1,(select max(컬럼1) from B테이블 where 컬럼2 = 'Y' and 컬럼1 like substr(a.컬럼1, 0, length(a.컬럼)-1) || '%')  is not null

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

이렇게 쿼리를 하면 원하는 데이터는 얻을 수 있지만 속도가 많이 늦습니다.

도움 부탁드려요 ㅠ.ㅠ

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

WITH a AS
(
SELECT '13' c1 FROM dual
UNION ALL SELECT '23' FROM dual
UNION ALL SELECT '33' FROM dual
)
, b AS
(
SELECT '13' c1, 'N' c2 FROM dual
UNION ALL SELECT '12', 'Y' FROM dual
UNION ALL SELECT '11', 'N' FROM dual
UNION ALL SELECT '23', 'Y' FROM dual
UNION ALL SELECT '33', 'N' FROM dual
)
SELECT a.c1
     , NVL(MAX(DECODE(a.c1, b.c1, b.c1)), MAX(b.c1)) c3
  FROM a, b
 WHERE b.c1 LIKE SUBSTR(a.c1, 1, 1) || '_'
   AND b.c2 = 'Y'
 GROUP BY a.c1
 ORDER BY a.c1
;

마농(manon94)님이 2012-04-25 09:02에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39416쿼리 질문 좀 드리겠습니다. [1]
선한양심
2012-04-25
4176
39415sql 도움 부탁드립니다 [3]
초보
2012-04-25
4924
39414ORA-01841 오류 [2]
신동화
2012-04-25
6394
39413쿼리 문의 [1]
진희
2012-04-24
4258
39412쿼리문 문의 드립니다 SELECT ROW별 검색 조건 [3]
최상민
2012-04-24
5425
39411sql 도움 부탁드립니다 [3]
오라클초보
2012-04-23
4258
39410조건문을 SQL에 포함 하고자 합니다. [1]
최상원
2012-04-20
4440
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다