CMON_CD | CMON_CD_NM | T1 | T2 |
11 | 택가 | 103645300 | 49260000 |
12 | 할인액 | 44788700 | 18716600 |
40 | 할인율(%) | 210.65 | 79.41 |
13 | 실판매가 | 58856600 | 30543400 |
22 | 판매수수료 | 4443446 | 5307995 |
41 | 수수료율(%) | 48.67 | 33.6 |
이런식으로 나오는데요..문제는 할인율,수수료율 을 재계산을 해야됩니다.
우선 위내용은 전체 SUM을 수해서 나온결과인데 문제는 SUM을하니 각각 구한 할인율,수수수료율도 SUM이되서 문제가 됩니다. (GROUPBY PIVOT으로 우선 SELECT 해서 가져옵니다.)
그래서 SUM한 데이타를 가지고 다시 비율을 구하야되는데요 할인율은 CMON_CD = '11','12' 를 가져오는데 '12' / '11' 값이면 수수료율은 CMON_CD = '13','22' 를 가져오는데 '22' / '13' 의 값입니다.
지금일단 함수로 각각의 값을 가져와서 계산을 할까 생각중인데...이게 마지막으로 안될때 이렇게 함수로 계산하는 방법을 생각중입니다.
더좋은 방법이 있을까요?
WITH t AS ( SELECT '11' cmon_cd, '택가' cmon_cd_nm, 103645300 t1, 49260000 t2 FROM dual UNION ALL SELECT '12', '할인액' , 44788700, 18716600 FROM dual UNION ALL SELECT '40', '할인율(%)' , 210.65, 79.41 FROM dual UNION ALL SELECT '13', '실판매가' , 58856600, 30543400 FROM dual UNION ALL SELECT '22', '판매수수료' , 4443446, 5307995 FROM dual UNION ALL SELECT '41', '수수료율(%)', 48.67, 33.6 FROM dual ) SELECT * FROM t MODEL DIMENSION BY (cmon_cd) MEASURES (cmon_cd_nm, t1, t2) RULES ( t1['40'] = ROUND(t1['12'] / t1['11'] * 100, 2) , t2['40'] = ROUND(t2['12'] / t2['11'] * 100, 2) , t1['41'] = ROUND(t1['22'] / t1['13'] * 100, 2) , t2['41'] = ROUND(t2['22'] / t2['13'] * 100, 2) ) ;