본문 바로가기
오라클

소계, 합계 (ROLLUP 함수)

by 델피1004 2023. 4. 19.
반응형

SELECT DECODE(GROUPING(AA),1,'총')||NVL(A.WKYY,'계') WKYY, 
       SUM(BASICAMT) BASICAMT, EVALTOTAL, 
       CASE WHEN A.GUBUN='2' THEN 'AAA' WHEN A.GUBUN='3' THEN 'BBB' ELSE LTIPER END LTIPER,
       SUM(GLTIAMT) GLTIAMT, DIVISION,
       A.GUBUN, PAYYY1, NLTIAMT1, PAYYY2, NLTIAMT2, PAYYY3, NLTIAMT3, 
       PAYYY4, NLTIAMT4, PAYYY5, NLTIAMT5,
       SUM("2019.01"), SUM("2020.01"), SUM("2021.01"), SUM("2022.01"), SUM("2023.01") 
 ,AA
 ,CASE WHEN AA='LTI' THEN 1 ELSE 2 END ORD1
 ,CASE WHEN GROUPING(AA) = 1 THEN 3 WHEN A.WKYY IS NULL THEN 2 ELSE 1 END  ORD2 
 ,GROUPING(AA)
  FROM (SELECT A.*, DECODE(A.GUBUN,'1','CCC','기타') AA FROM SEV_LTI_GAE A WHERE IDNO ='XXXXX' ) A,
       (  SELECT WKYY, GUBUN, 
         MAX(CASE WHEN PAYYY='201901' THEN NLTIAMT END) "2019.01",
         MAX(CASE WHEN PAYYY='202001' THEN NLTIAMT END) "2020.01",
         MAX(CASE WHEN PAYYY='202101' THEN NLTIAMT END) "2021.01",
         MAX(CASE WHEN PAYYY='202201' THEN NLTIAMT END) "2022.01",
         MAX(CASE WHEN PAYYY='202301' THEN NLTIAMT END) "2023.01",
         MAX(CASE WHEN PAYYY='202401' THEN NLTIAMT END) "2024.01"
  FROM (  
SELECT  WKYY, GUBUN, PAYYY1, PAYYY2, PAYYY3, PAYYY4, PAYYY5,
        NLTIAMT1, NLTIAMT2, NLTIAMT3, NLTIAMT4, NLTIAMT5    
FROM SEV_LTI_GAE
WHERE IDNO='XXXXXX')
UNPIVOT ((PAYYY, NLTIAMT)
     FOR R_SEQ IN (
        (PAYYY1, NLTIAMT1) AS 1,
        (PAYYY2, NLTIAMT2) AS 2,
        (PAYYY3, NLTIAMT3) AS 3,
        (PAYYY4, NLTIAMT4) AS 4,
        (PAYYY5, NLTIAMT5) AS 5        
     )
) GROUP BY WKYY, GUBUN) B  
  WHERE A.WKYY= B.WKYY AND A.GUBUN  = B.GUBUN   
  GROUP BY ROLLUP(AA,(A.WKYY, EVALTOTAL,  LTIPER, GLTIAMT, DIVISION,
       A.GUBUN, PAYYY1, NLTIAMT1, PAYYY2, NLTIAMT2, PAYYY3, NLTIAMT3, 
       PAYYY4, NLTIAMT4, PAYYY5, NLTIAMT5))
  ORDER BY CASE WHEN AA='LTI' THEN 1 ELSE 2 END,
           CASE WHEN GROUPING(AA) = 1 THEN 3 WHEN A.WKYY IS NULL THEN 2 ELSE 1 END, A.WKYY   

반응형

'오라클' 카테고리의 다른 글

pivot, unpivot 여러개 처리  (0) 2023.04.19
pivot, unpivot 여러개 처리  (0) 2023.04.05
FUNCTION 예제  (0) 2023.01.27
토드에서 메뉴 느린것  (0) 2023.01.27
토드에서 프러시저 실행  (0) 2023.01.27

댓글