DataBase

소계와 합계 구하는 방법 (1)

클라인STR 2015. 12. 17. 01:09

 

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