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 |
댓글