database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 34970 게시물 읽기
No. 34970
ㅠㅠ 제가 쿼리를 잘못 짠건가요? ㅠㅠ 원하는 값이 안나오네요. 도아주세요
작성자
김광성(sungi007)
작성일
2008-12-16 09:10
조회수
2,426

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 ㅠㅠ 계속 반감되는데 원인이 뭘까요? ㅠㅠ


쿼리 초보라 아직 ㅠㅠ 왜 이렇게 나오는지 이해를 못하겠어요 ? 어디가 잘못된 걸까요 ㅠㅠ

이 글에 대한 댓글이 총 3건 있습니다.

DECODE(NUM,1,CD.LOOKUP_CODE,2,'SUB TOTAL', 'TOTAL') POSITION

,DECODE(NUM,2,CD.TYPE_DESCRIPTION) SS


이문과, 


  ,(SELECT 1 NUM FROM DUAL UNION ALL

       SELECT 2 NUM FROM DUAL UNION ALL

 

           SELECT 3 NUM FROM DUAL)


이걸 빼고 실행 시켜보세요.. 

배고파(hiteman100)님이 2008-12-16 13:51에 작성한 댓글입니다.

평균이기 때문 아닌가요;;;

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|


round((563 + 12172 )/2) 는 6368 이 맞는데요...

total값이 다른걸보니 sub total이 FOREIGN PERSION이 아닌 다른 그룹이 있는것 같은데...

그 그룹은 값이 얼마 안되나 보네요 total하고 sub total의 sum 차이가 얼마 안나는걸 보면..

total의 값이 더 낮은 이 값이 적은 그룹과도 평균을 내기 때문이겠지요

김기현(dndnddl)님이 2008-12-16 18:07에 작성한 댓글입니다.

많이 감사합니다 큰 도움이 되었습니다.

김광성(sungi007)님이 2008-12-19 08:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
34973package 복구...
666
2008-12-16
3185
34972over()시 중복데이터 제거 방법좀 알려주세요 [2]
송민아
2008-12-16
4790
34971create directory에 관해서 설명 좀 부탁 드립니다.
방이방이
2008-12-16
2043
34970ㅠㅠ 제가 쿼리를 잘못 짠건가요? ㅠㅠ 원하는 값이 안나오네요. 도아주세요 [3]
김광성
2008-12-16
2426
34969한 컬럼의 값 중 구분자를 제외하고 합 구하기 [2]
임재영
2008-12-15
3061
34968[쿼리질문]자기값보다 작은 값의 개수COUNT [3]
이동훈
2008-12-15
2433
34967수식계산..? [1]
MR강
2008-12-15
2244
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다