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 39619 게시물 읽기
No. 39619
월별 통계 SQL 질문 입니다.
작성자
오세원(osw0316)
작성일
2012-09-03 17:43
조회수
4,829

 SELECT DECODE(ds_depth2, NULL, 'Total', ds_depth2),

      sum( CASE SUBSTR(dte,1,6) WHEN '201203' THEN cnt ELSE 0 END) mm201203,

      sum( CASE SUBSTR(dte,1,6) WHEN '201204' THEN cnt ELSE 0 END) mm201204,

      sum( CASE SUBSTR(dte,1,6) WHEN '201205' THEN cnt ELSE 0 END) mm201205,

  FROM

       (SELECT to_char(a.finish_dtime,'yyyymmdd') dte,

              h.voc_vehicle,

              e.voc_code ,

              e.ds_depth1,

              ds_depth2,

              e.ds_depth3 vw1 ,

              count(*) cnt

         FROM vqm_voc_org a

          INNER JOIN gat_voccodemap d

              ON a.cd_code = d.code

          INNER JOIN gat_voccode e

              ON d.voc_code = e.voc_code

          INNER JOIN gat_vocvehiclemap g

              ON a.car_code = g.seriescd

          INNER JOIN gat_vocvehicle h

              ON g.voc_vehicle = h.voc_vehicle 

        WHERE to_char(finish_dtime,'yyyymmdd') BETWEEN '20120301' AND '20120930'

              /*일자*/

              AND a.no_any IS NOT NULL

              AND a.cd_media ='0010' -- 콜센터

              AND h.voc_vehicle IN( 'T100' , 'T200' , 'T300' , 'T400' , 'T500' , 'T600' , 'T610' , 'T700' , 'T999' , 'V001' , 'V100' , 'V110' , 'V200' , 'V300' , 'V400' , 'V410' , 'V500' , 'V600' , 'V700' , 'V800' , 'V900' )

              AND e.ds_depth1 ='Quality'

        GROUP BY to_char(finish_dtime,'yyyymmdd'),

              e.voc_code,

              e.ds_depth1,

              ds_depth2,

              ds_depth3 ,

              h.voc_vehicle

           UNION ALL

       SELECT to_char(a.finish_dtime,'yyyymmdd') dte,

              h.voc_vehicle,

              e.voc_code ,

              e.ds_depth1,

              ds_depth2,

              e.ds_depth3 vw1 ,

              count(*) web_cnt

         FROM VQM_VOC_ORG a

          INNER JOIN gat_voccodemap d

              ON a.cd_code = d.code

          INNER JOIN gat_voccode e

              ON d.voc_code = e.voc_code

          INNER JOIN gat_vocvehiclemap g

              ON a.car_code = g.seriescd

          INNER JOIN gat_vocvehicle h

              ON g.voc_vehicle = h.voc_vehicle

        WHERE to_char(finish_dtime,'yyyymmdd') BETWEEN '20120301' AND '20120930'

        AND h.voc_vehicle IN( 'T100' , 'T200' , 'T300' , 'T400' , 'T500' , 'T600' , 'T610' , 'T700' , 'T999' , 'V001' , 'V100' , 'V110' , 'V200' , 'V300' , 'V400' , 'V410' , 'V500' , 'V600' , 'V700' , 'V800' , 'V900' )

              AND a.cd_media ='0020' -- 웹 구분

              AND e.ds_depth1 ='Quality'

        GROUP BY to_char(finish_dtime,'yyyymmdd'),

              h.voc_vehicle,

              e.voc_code ,

              e.ds_depth1,

              ds_depth2,

              ds_depth3

       ) ttmp1

GROUP BY ROLLUP(ds_depth2)

 

sum 하는 부분을 위에 쿼리 처럼 하드 코딩 하지 말고 자동으로 나오게 할 수 있을까요?

 

 

[Top]
No.
제목
작성자
작성일
조회
39622가장많이 나온 번호 쿼리 알려주실분 어려워요 [1]
축구
2012-09-05
4900
39621이럴때는 update 어떻게 해야하나요..? [3]
한상원
2012-09-04
4973
39620frm 40508 오라클 폼즈 질문입니다
박철우이
2012-09-03
4640
39619월별 통계 SQL 질문 입니다.
오세원
2012-09-03
4829
39618Oracle 10g와 11g
신승익
2012-09-03
3749
39617Oracle 10g를 다운로드 받고 싶은데... [1]
신승익
2012-09-02
4364
39616핫백업 파일로 다른서버로 복구하기 [3]
스테파노
2012-08-31
4850
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다