TABLE을 4번복제하기위하여 카티젼프로덕트 이용한다.

1
2
3
4
5
6
7
SELECT * FROM TEST12 A
        ,(
           SELECT ROWNUM RCNT 
             FROM TEST12 
            WHERE ROWNUM < 5        
         )B;
 
cs

 

 

 

 

4개의 복제된 데이터중 RCNT2를 합계용으로 3을 출판사 소계용으로 가공한다.

 

1
2
3
4
5
6
7
8
9
10
SELECT  DECODE(RCNT,2,'합 계',3,PRESS||'계',PRESS) "출판사" 
        , SUM(PRICE)
        FROM TEST12 A
        ,(
           SELECT ROWNUM RCNT 
             FROM TEST12 
            WHERE ROWNUM < 5        
         )B
         GROUP BY DECODE(RCNT,2,'합 계',3,PRESS||'계',PRESS) ;
 
cs

 

 

책종류에서는 출판사/종류별 계로 사용할 복제번호와 원본데이터로 사용할 복제번호를 지정한다.

1, 출판사종류계 4를 일반데이터로 지정한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
      SELECT  DECODE(RCNT,2,'합 계',3,PRESS||'계',PRESS) "출판사" 
               , DECODE(RCNT,1,BOOK_TYPE||' 계',4, BOOK_TYPE) "종류"
               , DECODE(RCNT,4,BOOK_NAME) "책명"
            
        , SUM(PRICE)
        FROM TEST12 A
        ,(
           SELECT ROWNUM RCNT 
             FROM TEST12 
            WHERE ROWNUM < 5        
         )B
         GROUP BY DECODE(RCNT,2,'합 계',3,PRESS||'계',PRESS)
                  , DECODE(RCNT,1,BOOK_TYPE||' 계',4, BOOK_TYPE)
                  , DECODE(RCNT,4,BOOK_NAME) 
              
         ORDER BY DECODE(RCNT,2,'합 계',3,PRESS||'계',PRESS);
 
cs

'DataBase' 카테고리의 다른 글

SQL 쿼리 잘짜는 방법  (0) 2018.10.10
오라클 문자열 합치기 LISTAGG  (0) 2015.12.17
프로시져란 (PROCEDURE) ?  (0) 2015.12.16
COPY_T 테이블이란?  (0) 2015.12.16
누계를 구하는 방법에 대하여 (2)  (0) 2015.12.14
블로그 이미지

클라인STR

,