반응형
1. 목적: 주식시장에서 과거 20년 동안 당일 최고가로 장을 마친(종가=최고가) 종목을 조회하는 쿼리다.
일별종목거래및시세 테이블로부터 시가, 종가, 거래 데이터를 읽고 그 당시 종목명과 상장주식수는 종목이력으로부터 가져오는데, 조인 연산자 '='이 아니라 between이라는 점이 특징적이다.
SELECT a.거래일자, a.종목코드, b.종목한글명, b.종목영문명, b.상장주식수
, a.시가, a.종가, a.체결건수, a.체결수량, a.거래대금
FROM 일별종목거래및시세 a, 종목이력 b
WHERE a.거래일자 BETWEEN TO_CHAR(ADD_MONTHS(SYSDATE, -20*12), 'YYYYMMDD')
AND TO_CHAR(SYSDATE-1, 'YYYYMMDD')
AND a.종가 = a.최고가
AND b.종목코드 = a.종목코드
AND a.거래일자 BETWEEN b.시작일자 AND b.종료일자
-- Star of Comment
-- 거래 시점이 아니라 현재(최종) 시점의 종목명과 상장주식수를 출력하려면 BETWEEN 조인 대신 상수조건으--- 로 입력해야 한다.
-- AND TO_CHAR(SYSDATE, 'YYYYMMDD') BETWEEN b.시작일자 AND b.종료일자
-- End of Comment
;
반응형
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
Union All을 활용한 M:M 관계의 조인(고급 SQL 활용) - SQL전문가 가이드 p.677~p.680 (0) | 2012.10.26 |
---|---|
CASE문 활용(고급 SQL 활용) - SQL전문가 가이드 p.674~p.675 (0) | 2012.10.26 |
부등호 조인 - SQL전문가 가이드 p.659 (0) | 2012.10.25 |
두 개 이상의 값을 리턴하고 싶을 때 - SQL전문가 가이드 p.653~p.654 (0) | 2012.10.25 |
Sort Merge Join의 특징 - SQL전문가 가이드 p.648 (0) | 2012.10.25 |