도움을 받았지만...ㅠ 0 5 1,575

by 월락 [2009.06.10 10:07:50]


마농님의 도움으로

 SUM(SUM(A.CONV_PRFM_AMT)) OVER(PARTITION BY A.TEAM_NO) DESC를 사용해서
오라클에서는 정상적으로 결과가 떨어졌자만...컴파일 지원이 않되네요...

다른 방법없을까요!???ㅠ

 

 

SELECT
  A.팀번호
 ,C.팀명
 ,A.사원번호
 ,B.사원명
 ,SUM(4월실적)
 ,SUM(5월실적)
             .
             .
 ,SUM(12월실적)
FROM TABLE A, TABLE B, TABLE C
 ( SELECT   :년도
                , :팀번호
  , :사원번호
  , :시장구분
  , :수수료여부
  , :상품구분
  , :연속_팀번호(패치시 연속키값)
  , :연속_사원번호(패치시 연속키값)
   FROM DUAL
 ) X
WHERE A.~ = B.~
    AND A.~ = C.~
    AND C.코드 = '003'
    AND A.일자 BETWEEN X.년도 || '0401'
   AND TO_CHAR(TO_NUMBER(X.년도) + 1 || '0331'
    AND A.팀번호 = DECODE(X.팀번호, '000', A.팀번호, X.팀번호)
    AND A.사원번호 = DECODE(X.사원번호, '         ', A.사원번호, X.사원번호)
    AND (A.팀번호 > X.연속_팀번호
    OR  (A.팀번호 = X.연속_팀번호
    AND  A.사원번호 >= X.연속_사원번호))
GROUP BY A.팀번호, C.팀명, A.사원번호, B.사원명
ORDER BY 팀번호,사원번호

=============================================================================

팀명        사원명     4월실적        5월실적     ~          12월실적
A팀          김XX
 김XX
=소계========================================================================
B팀
=소계========================================================================
C팀          박XX
                  정XX
=소계========================================================================
 .
 .
 .
X팀          구XX
                 송XX
=소계========================================================================

위 쿼리는 각 팀별,사원별로 뿌리고 소계는 화면단에서 처리 합니다.

변경하고 싶은 방법은 팀별소계가 큰순서에서 작은순서로 소팅해서 가져오고 싶습니다...
(여전히 소계는 화면단에서 처리하니 무시 하셔도 됩니다.)
가져올때 팀별 실적의 합계가 가장 큰팀별 사원별로~ 작은 순으로 데이터를 가져오고 싶습니다

이래저래 몇시간째 고민하다 글을 올립니다...ㅠ도움 부탁드립니다...

by 마농 [2009.06.10 10:30:22]
컴파일이라 하심은?

by 월락 [2009.06.10 10:32:40]
프레임웍 쪽에서 프로컴파일 지원이 되지 않아요...ㅠ

by 월락 [2009.06.10 10:34:40]
오라클은 10g 버젼이지만...미들웨어의 proc 컴파일러가 버젼이 낮아서 그런것 같아요...

by 마농 [2009.06.10 10:37:26]
다이나믹SQL로 한번 해보세요.
문맥체크시점이 컴파일시점에서 실행시점으로 바뀔걸요? 아마도...

by 월락 [2009.06.10 10:38:57]
네 답변 정말 감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입