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 40402 게시물 읽기
No. 40402
안녕하십니까? ROLLUP 관련해서 문의드립니다.
작성자
황인준(초콜릿바나나)
작성일
2014-03-13 10:36
조회수
8,146

SELECT YM "날짜",
       (CASE WHEN C.DISTANCE_KM BETWEEN 0   AND 30  THEN 30
             WHEN C.DISTANCE_KM BETWEEN 31  AND 50  THEN 50
             WHEN C.DISTANCE_KM BETWEEN 51  AND 100 THEN 100
             WHEN C.DISTANCE_KM BETWEEN 101 AND 200 THEN 200
            ELSE 201
            END) AS "거리",  
         NVL(DECODE(Y.ITEM_OR,'010','전기',
                       '020','식음료',
                       '040','생활용품',
                       '050','섬유',
                       '060','농산물',
                       '070','수산물',
                       '080','자동차',
                       '999','기타'),'없음') "업종", 
       H.EMP_NM_KOR "담당자명",
       J.CUST_NM "거래처명",
       J.TOT_M21*NVL(Y.CLASS_RATE/100,1) "매출수량(M2)", J.AMT1*NVL(Y.CLASS_RATE/100,1) "매출금액" 
FROM SALE.V_SALE_JUN J,
     SALE.V_SALE_CLASSIFY Y,
     SALE.SDBS_CUST C,
     HRMS.HDPB_EMP H
WHERE J.ITEM_TYPE = '800'
  AND YM ='201402'
  AND C.SM_CODE   = H.EMP_NO  
  AND J.CUST_CODE = Y.CUST_CODE(+)
  AND J.CUST_CODE = C.CUST_CODE(+)
  ORDER BY 2,3,4

쿼리는 이런 구성이 되어있습니다.

날짜 거리 업종 담당자명 거래처명 수량 금액
201402 30 전기 홍길동 부산 1 10
201402 30 식음료 이순신 울산 5 50
201402 50 기타 홍길동 대구 3 30
201402 50 기타 유관순 양산 6 60
201402 50 기타 신사임당 서울 2 20
201402 100 수산물 홍길동 대전 4 40
201402 100 농산물 신사임당 수원 1 10
201402 200 자동차 홍길동 인천 5 50
201402 201 자동차 이순신 광주 6 60

이렇게 출력이 됩니다.

제가 원하는 형식은

날짜 거리 업종 담당자명 거래처명 수량 금액
201402 30 전기 홍길동 부산 1 10
      담당자계 : 홍길동   1 10
    업종계 : 전기     1 10
    식음료 이순신 울산 5 50
      담당자계 : 이순신   5 50
    업종계  : 식음료     5 50
  거리별 계       6 60
      .      
      .      
      .      
      .      
      .      
      .      
      .      
      .      
      .      
      .      
      .      
총 합계         6 60

 이런 식으로 나오게 하고 싶습니다.

ROLLUP 관련해서 계속 공부하고 있긴 한데 어렵네요...

도움 부탁드립니다. 감사합니다.

 

이 글에 대한 댓글이 총 2건 있습니다.

SELECT "날짜"
     , "거리"
     , "업종"
     , "담당자명"
     , "거래처명"
     , SUM("매출수량(M2)") AS "매출수량(M2)"
     , SUM("매출금액"    ) AS "매출금액"
  FROM (위의 쿼리에서 Order By 절 빼고)
 GROUP BY "날짜"
     , ROLLUP("거리", "업종", "담당자명", "거래처명")
;

마농(manon94)님이 2014-03-13 13:13에 작성한 댓글입니다.

댓글이 늦어서 죄송합니다.

도움 주셔서 감사합니다.

황인준(초콜릿바나나)님이 2014-03-25 09:23에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40407질문 드립니다. [2]
야간비행
2014-03-18
7082
40406오라클 업데이트 쿼리 질문드려요 ㅠㅠ [2]
도토리
2014-03-17
8063
40405권한주는 방법을 알려주세요~ [1]
궁금이
2014-03-13
6972
40402안녕하십니까? ROLLUP 관련해서 문의드립니다. [2]
황인준
2014-03-13
8146
40400where rownum <= 10 order by crt_date desc 문의 [1]
이성근
2014-03-10
6636
40398이런 쿼리 가능할까요? [5]
이태우
2014-03-10
7304
40397뷰에 널값으로 컬럼 하나 추가 가능한가요?
민규
2014-03-07
6685
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다