주석부분 보면 --+ DECODE( TERM, '200706' , D['200706'] ,D['200706']*-1 ) 이렇게 실행하면
ORA-00984: 열을 사용할 수 없습니다
Error code: 984
SQL state: 42000
이걸 해결가능할수 없을까요?
값의 조건에 (TERM 또는 NUM)따라 + , - 줄려고 하는데 방법이 있을까요??
SELECT NUM,TERM ,SALARY
, D,TEST
FROM
(
SELECT 1 NUM, '200701' TERM, 1000000 SALARY , 2 D201901 ,'P405' TEST FROM DUAL UNION ALL
SELECT 1 NUM, '200702' TERM, 2000000 SALARY ,3 ,'P405' FROM DUAL UNION ALL
SELECT 1 NUM, '200703' TERM, 1500000 SALARY ,5 ,'P407' FROM DUAL UNION ALL
SELECT 1 NUM, '200704' TERM, 1900000 SALARY ,2 ,'P405' FROM DUAL UNION ALL
SELECT 1 NUM, '200705' TERM, 2300000 SALARY ,2 ,'P405' FROM DUAL UNION ALL
SELECT 1 NUM, '200706' TERM, 3000000 SALARY ,2 ,'P405' FROM DUAL UNION ALL
SELECT 2 NUM, '200701' TERM, 1000000 SALARY , 10 ,'P405' FROM DUAL UNION ALL
SELECT 2 NUM, '200702' TERM, 1500000 SALARY ,11 ,'P405' FROM DUAL UNION ALL
SELECT 2 NUM, '200703' TERM, 1500000 SALARY ,12 ,'P405' FROM DUAL UNION ALL
SELECT 2 NUM, '200704' TERM, 1900000 SALARY ,13 ,'P405' FROM DUAL UNION ALL
SELECT 2 NUM, '200705' TERM, 2300000 SALARY ,14 ,'P405' FROM DUAL UNION ALL
SELECT 2 NUM, '200706' TERM, 3000000 SALARY ,15 ,'P405' FROM DUAL
)
MODEL
PARTITION BY (NUM)
DIMENSION BY (TERM)
MEASURES ( D201901 D,SALARY ,TEST)
RULES (
D['분기'] = D['200701'] + D['200702'] + D['200703'] + D['200704'] + D['200705'] --+ DECODE( TERM, '200706' , D['200706'] ,D['200706']*-1 )
,SALARY['합계']= SUM(SALARY) [ TERM BETWEEN '200701' AND '200706' ]
,SALARY['평균']= ROUND(AVG(SALARY) [ TERM BETWEEN '200701' AND '200706' ] ,2)
)
ORDER BY NUM,TERM