[답변] rollup 과 grouping, having 사용 0 4 5,242

by 마농 rollup grouping having [2008.08.26 09:03:17]


SELECT CASE WHEN GROUPING(gubun) = 0
            THEN NVL(category,'소계')
            ELSE '차감계'
        END AS category
     , CASE WHEN GROUPING(gubun) = 1
            THEN SUM(DECODE(gubun,0,this_term,-this_term))
            ELSE SUM(this_term)
        END AS this_term
     , CASE WHEN GROUPING(gubun) = 1
            THEN SUM(DECODE(gubun,0,former_term,-former_term))
            ELSE SUM(former_term)
        END AS former_term
  FROM (SELECT DECODE(t.catagory,'유동성장기차입금',1,0) AS gubun
             , t.catagory
             , SUM(DECODE(t.period_name,'08-Jun',t.amount_krw,0)) AS this_term
             , SUM(DECODE(t.period_name,'08-Jun',0,t.amount_krw)) AS former_term
          FROM klc_footnote_loan t
         WHERE t.period_name IN ('08-Jun'
             , TO_CHAR(ADD_MONTHS(TO_DATE('08-Jun', 'YY-Mon'), -12),'YY-Mon') )
         GROUP BY DECODE(t.catagory,'유동성장기차입금',1,0), t.catagory
        )
 GROUP BY ROLLUP(gubun, category)
HAVING NOT (gubun = 1 AND GROUPING(category) = 1)

by 이예원 [2008.08.26 10:50:14]
마농님 감사합니다^^ HAVING절에 AND GROUPING(gubun) = 0 까지 추가해서 유동성장기차입금의 소계는 빼는, 제가 원하던 결과를 얻었습니다. 감사합니다^^

by 마농 [2008.08.26 10:56:47]
뭘 어떻게 추가하신건지요?
그냥 위 쿼리만으로 결과가 안나오던가요?

by 마농 [2008.08.26 11:09:00]
훔.. 마지막 총계가 gubun이 널이라서 조건에서 제외되는군요.
HAVING NOT (gubun = 1 AND GROUPING(gubun) = 0 AND GROUPING(category) = 1)

by 손님 [2008.08.26 11:22:23]
넵~~ 감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입