[답변]쿼리 튜닝 관련 0 1 2,234

by 성시현 [2007.12.06 14:00:06]


질문에 제아이디가 언급되어 있어 늦었지만 의견을 적습니다.

 

우선 무엇때문에 UNION ALL처리가 있는지 정확한 목적은 알 수 없으나 단지 조인에 빠진 데이터를 추가하기 위한 목적이라면 아우터조인으로 풀어도 될 듯 합니다.

아래 쿼리 결과 확인 해 보시고, 다르다면 무엇이 어떻게 다른지 알려주세요.

 

SELECT
      종목번호
    , 영문명
    , 단축영문명
    , 기준가
    , 상한가
    , 하한가
    , 최고가격
    , 행사가
    , CASE WHEN B.구분 IN ('F')      THEN  ' 500000.000000'
           WHEN B.구분 IN ('C' ,'P') THEN  ' 100000.000000'
           WHEN B.구분 IN ('S')  THEN  ' 150000.000000'
           ELSE '0000000.000000'
      END AS 승수
    , DECODE(B.구분
            , 'F', '   1000'
            , 'C','   5000'
            , 'P','   5000') AS  주문한도
    , A.UP_15
    , ... 중략 ...
    , A.DOWN_15
FROM  마스터 B
    , ( SELECT
              종목번호
            , MAX(DECODE(A.가치구분,15, A.이론가)) AS UP_15
            , ... 중략 ...
            , MAX(DECODE(A.가치구분,-15,A.이론가)) AS DOWN_15
        FROM  이론가
        WHERE SUBSTR(종목번호, 2, 2) = '01'
        GROUP BY 종목번호
      ) A
WHERE B.종목번호 = A.종목번호(+)
  AND B.날짜 > 0
ORDER BY 종목번호

 

건승하시길...수고하세요~~

by finecomp [2007.12.06 00:00:00]
추가로 결과차이에 따라 마지막 조건에

WHERE A.종목코드 IS NOT NULL
OR(
A.종목코드 IS NULL
AND 구분 IN ('F', 'S')
AND 코드 IN ('ZZZ', '501')
)

정도의 조건이 더 필요할 수 있습니다...참고하고 보세요...^^;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입