database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 34071 게시물 읽기
No. 34071
ROLLUP시 총 합은 구했는데 '총합'이라는 글자를 총합 앞에 컬럼에 넣고 싶습니다.
작성자
구우
작성일
2008-07-11 14:43
조회수
2,782
SELECT B.DNAME
     , SUM(A.SAL)
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO
GROUP BY ROLLUP((B.DNAME))



검색결과

DNAME                SUM(A.SAL)

ACCOUNTING      8750
RESEARCH          10875
SALES                 9400
       '총계'            29025  <---- 총계    이 앞에 컬럼에   '총계' 라고 넣고 싶은데 방법을 모르겠네요. 방법좀 알려주세요

이 글에 대한 댓글이 총 4건 있습니다.
SELECT NVL(B.DNAME, '총계')
     , SUM(A.SAL)
FROM EMP A, DEPT B
WHERE A.DEPTNO = B.DEPTNO
GROUP BY ROLLUP((B.DNAME))

혹시..이러면 ??

혹시..님이 2008-07-11 14:55에 작성한 댓글입니다. Edit

DECODE ( GROUPING_ID( B.DNAME ), 1, '총계', B.DNAME ) )

채용근(taiji97)님이 2008-07-11 14:57에 작성한 댓글입니다.

와 그런 편법도 있었군요 !!! 감사합니다...   밑에 분도 감사해요 ~~

구우님이 2008-07-11 15:00에 작성한 댓글입니다. Edit
편법이라 표현하시니 사족 한마디...^^;

GROUPING() 함수는 ROLLUP 또는 CUBE 시 이런 처리를 위해 나온 정석방법이고,
NVL처리는 원래의 B.DNAME 데이터가 Not NULL을 보장한다는 전제로 조건부 정답입니다...
데이터구조를 알고서 쿼리를 맞추는 것이니까요...;

하지만 B.DNAME이 Nullable 컬럼이라면 NVL은 틀릴 수도 있는 쿼리가 됩니다.

경우에 따라 결과가 맞느냐 틀리냐지 두 방법 다 편법처리는 없어 보이는데요...참고하시길...^^;
성시현(finecomp)님이 2008-07-11 15:27에 작성한 댓글입니다.
이 댓글은 2008-07-11 15:29에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
3407550명을 신청자를 받아야 하는데요..질문입니다.
Wenzie
2008-07-13
1589
34074오라클 64비트와 32비트간의 DB Link 연결에 문제는 없나요 ? [1]
임용성
2008-07-13
2422
34073MTS 변경 후 ORA-27100: shared memory realm already exists
이재영
2008-07-12
3373
34071ROLLUP시 총 합은 구했는데 '총합'이라는 글자를 총합 앞에 컬럼에 넣고 싶습니다. [4]
구우
2008-07-11
2782
34070SQL Parser 에 관해서..
younglee
2008-07-11
2509
34069오라클 에러메세지 손상된 패킷....
차지은
2008-07-11
2200
34068오라클 10g 공부하고 있는 왕초보입니다. 질문좀.. [2]
이덕로
2008-07-11
2156
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다