SELECT DECODE(NUM,1,CD.LOOKUP_CODE,2,'SUB TOTAL', 'TOTAL') POSITION
,DECODE(NUM,2,CD.TYPE_DESCRIPTION) SS
,SUM(MONTH1) MONTH1
,SUM(MONTH2) MONTH2
,SUM(MONTH3) MONTH3
,SUM(MONTH4) MONTH4
,SUM(MONTH5) MONTH5
,SUM(MONTH6) MONTH6
,SUM(MONTH7) MONTH7
,SUM(MONTH8) MONTH8
,SUM(MONTH9) MONTH9
,SUM(MONTH10) MONTH10
,SUM(MONTH11) MONTH11
,SUM(MONTH12) MONTH12
,Round(AVG((MONTH1+MONTH2+MONTH3+MONTH4+MONTH5+MONTH6+MONTH7+MONTH8+MONTH9+MONTH10+MONTH11+MONTH12)/12)) sSumAvg
, MAX(CD.LINE_SEQ) LINE_SEQ
FROM EIS_PERSON_PLAN PP, EIS_STD_CODE CD
,(SELECT 1 NUM FROM DUAL UNION ALL
SELECT 2 NUM FROM DUAL UNION ALL
SELECT 3 NUM FROM DUAL)
WHERE PP.POSITION(+) = CD.LOOKUP_CODE
AND CD.SUB_TYPE = 'FOREIGN'
AND CD.LOOKUP_TYPE = 'PERSON'
AND ORG(+) = 'VT'
AND YYYY(+) = '2008'
GROUP BY DECODE(NUM,1,CD.LOOKUP_CODE,2,'SUB TOTAL', 'TOTAL')
,DECODE(NUM,2,CD.TYPE_DESCRIPTION)
ORDER BY LINE_SEQ , POSITION
위와 같이 쿼리 문장을 만들었어요.
결과물은 아래와 같이 나와요
LOCAL MANAGER||563|563|563|563|563|563|563|563|563|563|563|563|563|30|
LOCAL TECHNICAL||11537|11537|11537|12486|12486|12486|12438|12438|12438|12228|12228|12228|12172|40|
SUB TOTAL|FOREIGN PERSION|12100|12100|12100|13049|13049|13049|13001|13001|13001|12791|12791|12791|6368|40|
TOTAL||12155|12155|12155|13104|13104|13104|13056|13056|13056|12846|12846|12846|3198|40|
그런데 문제점은 다 정확하게 나오는데. sSumAvg의 값이 계속 반감되네요...
처음에 12172 두번째 라인에 6368 세번째 라인에 3198 ㅠㅠ 계속 반감되는데 원인이 뭘까요? ㅠㅠ
쿼리 초보라 아직 ㅠㅠ 왜 이렇게 나오는지 이해를 못하겠어요 ? 어디가 잘못된 걸까요 ㅠㅠ
|