rollup을 쓰는데 잘 안풀리네요.. ㅠㅠ 0 5 1,971

by 동안이 [2013.11.19 16:57:47]


안녕하세요. 생각을 해봐도 잘 안풀려서. 질문 드립니다. 어디가 잘못되었는지.. ㅠㅠ

제가 원하는 화면은 

ex)
---------------------------------------------
팀이름   팀ID   팀점총계
---------------------------------------------
운영본부 101111    10000
---------------------------------------------
영업1팀    102111    20000
---------------------------------------------
      주문총액 30000
---------------------------------------------

이런 결과를 원하는데.

현재 이렇게 나오고 있습니다.
---------------------------------------------
팀이름   팀ID   팀점총계
---------------------------------------------
운영본부 101111    10000
---------------------------------------------
       주문총액    10000
---------------------------------------------
영업1팀    102111    20000
---------------------------------------------
       주문총액   20000
---------------------------------------------
      주문총액 30000
---------------------------------------------

팀이름 : DEPT_NM,  팀ID : DEPT_ID, 팀점총계 : ODR_QTY

쿼리는

SELECT
 DECODE(DEPT_ID,'','', DEPT_NM) AS DEPT_NM,
 DECODE(DEPT_ID,'','주문총액',DEPT_ID) AS DEPT_ID,
 SUM(ODR_QTY) AS ODR_QTY
 FROM
 /*원본데이터영역*/
 (
    SELECT
B.BZPLC_ID AS BZPLC_ID     /* 사업장ID */
    , SUM(B.ODR_QTY)    AS ODR_QTY   /* 주문수량 */
    , B.CUR_UNT_CD    AS CUR_UNT_CD   /* 통화단위코드,KRW,USD */
    , SUM(B.VATX_AMT) AS VATX_AMT     /* VAT금액 */
    , SUM(B.SALE_AMT)   AS SALE_AMT     /* 매출금액 */
    , A.DEPT_ID    AS DEPT_ID   /* 부서ID */
    , MAX((SELECT DEPT_NM FROM TB_FC_DEPT_BASIS WHERE CO_CD = A.CO_CD AND  DEPT_ID = A.DEPT_ID AND ROWNUM = 1 ))
  AS DEPT_NM   /* 부서명 */
    FROM TB_FC_ODR_HEADR   A /* 주문_헤더 */
   , TB_FC_ODR_DTL     B /* 주문_상세 */
WHERE 1 = 1
   AND A.CO_CD     = B.CO_CD
   AND A.BZPLC_ID = B.BZPLC_ID
   AND A.BZPLC_ID = 'S000000001'
   AND A.OPR_UNT_ID    = 'S000006713'
   AND A.ODR_NO    = B.ODR_NO
   AND A.CO_CD     = '1000'
   AND B.ORD_DT BETWEEN REPLACE('2013-11-05', '-', '') AND REPLACE('2013-11-19', '-', '')
AND B.ODR_STATS_CD     IN ( SELECT DTL_CD FROM TB_FC_COM_CD_DTL WHERE A.CO_CD = '1000' AND CLS_CD = 'ZSTATUS03' AND COM_USR_DEFN_NM2 = 'NORMAL' )
GROUP BY B.BZPLC_ID
    , A.DEPT_ID
    , B.CUR_UNT_CD
    ) A
 GROUP BY ROLLUP (DEPT_NM,DEPT_ID)


이렇게 짰습니다.

어떻게 해야 제가 원하는 화면대로 나올지.. 도움 부탁 드리겠습니다..
by 용근님 [2013.11.19 16:59:21]

한번더 괄호로 묶으세요


by 우리집아찌 [2013.11.19 17:01:17]
GROUP BY ROLLUP ((DEPT_NM,DEPT_ID))

by 동안이 [2013.11.19 17:04:02]
용근님, 우리집아찌님 감사합니다. ^^  그런데 왜 괄호를 하나 더 붙이면 저런 결과가 나오는 건가요? 원리가 잘 이해가 안가서요..

by 우리집아찌 [2013.11.19 17:21:59]
용근님한테 물어보세요.. 저도 용근한테 배움..

by 용근님 [2013.11.19 17:46:36]

큰테두리 ( 컬럼들) 자체를 하나의 셀로 보고 그에 대한 소계를 내준형태라고 보면 되겠습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입