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 39263 게시물 읽기
No. 39263
db 오라클에서 서브쿼리 문제
작성자
디비콜
작성일
2012-02-01 20:59
조회수
4,136

select a.code
           ,a.month
          ,(
           select price from model
           where code = a.code
           and yyyymm =
                       (select max(yyyymm) from model
                       where code = a.code
                          and yyyymm < a.yyyymm)
                         )

           )price
from sale a
where a.sale_date between 20110101 and 20110102

 

내용을 풀면 서브쿼리의 price 를가져올때 sale 테이블의 yyyymm보다 이전의 max(yyyymm)의 price를 가져오는데요.. 속도가 느려서...

select * from sales a, model b

이런 식으로 아래 내려서 사용하고 싶습니다..

방법을 잘 모르겠어요 아시는분 답주시면 감사드리겠습니다

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

model 테이블에 code+yyyymm  인덱스가 있다면 스칼라 쿼리부분을 아래와 같이 바꾸면 될 것 같습니다.

select /*+ index_desc(t idx_model_code_ym) */ price
from model t
where t.code = a.code
and t.yyyymm < a.yyyymm
and rownum=1

전영식(garam111)님이 2012-02-02 07:15에 작성한 댓글입니다.

와우 당신이 진정한 지식인이네요..

감사합니다~~^^

디비콜님이 2012-02-02 08:46에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3926810g 관련 CPU 100% 차는 현상입니다.ㅠㅠ [1]
지훈
2012-02-06
4005
39266DUL 급히 필요합니다.
달려라쑹
2012-02-03
3507
39265shell script관련 질문입니다.. [1]
BMZ
2012-02-03
4770
39263db 오라클에서 서브쿼리 문제 [2]
디비콜
2012-02-01
4136
39262키워드 검색 관련 질문드립니다. [1]
질럿
2012-02-01
3987
39261토드 옵션인지 먼지 한글 alias 관련 질문입니다. [2]
고영민
2012-02-01
5088
39260오라클 트리거 질문좀 할게요!! [2]
류하성
2012-02-01
3825
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.030초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다