오라클 쿼리(특정 행별 합계 및 소계) 질문입니다. 0 2 1,751

by 게릴라 [SQL Query] 행별 합계 [2016.10.26 08:57:56]


안녕하세요.

다름이 아니오라 쿼리 작성하다 막히는 부분이 있어 문의 드립니다.

테이블 구조는 아래와 같이 헤더와 디테일이 있습니다.

Header  GROUP H_VAL            
  그룹1 25            
  그룹2 35            
                 
Detail No GOURP D_VAL1 D_VAL2 D_VAL3 SUM H_VAL 구하고자 하는 값
  1 그룹1 10 10 5 25 25 1,2,3행 Sum의 합(25+35+45) - H_VAL(25) = 80
  2 그룹1 10 20 5 35 25 1,2,3행 Sum의 합(25+35+45) - H_VAL(25) = 80
  3 그룹1 10 30 5 45 25 1,2,3행 Sum의 합(25+35+45) - H_VAL(25) = 80
  4 그룹2 10 40 5 55 35 4,5,6행 Sum의 합(55+65+75) - H_VAL(35) = 160
  5 그룹2 10 50 5 65 35 4,5,6행 Sum의 합(55+65+75) - H_VAL(35) = 160
  6 그룹2 10 60 5 75 35 4,5,6행 Sum의 합(55+65+75) - H_VAL(35) = 160

 

디테일 각 Row(행)의 SUM 값을 모두 더한 후 그 값에서 헤더의 대표값을 뺀 값을 각 행별로 표현해주려고 합니다.

쿼리 초짜라 8시간동안 머리를 쥐어 짜봤는데 도무지 모르겠어서 이렇게 질문 올립니다.

 조언이나 방법...등을 알려주시면 대단히 감사하겠습니다.

오늘도 좋은 하루 보내세요~!!!

by Dev03 [2016.10.26 09:23:03]
SELECT B.NO, B.GROUP

            , B.D_VAL1, B.D_VAL2, B.D_VAL3

            , B.D_VAL1+B.D_VAL2+B.D_VAL3 AS S_VAL

            , A.H_VAL

            , SUM(B.D_VAL1+B.D_VAL2+B.D_VAL3) OVER(PARTITION BY B.GROUP)  - A.H_VAL AS 구하고자 하는 값

FROM HEADER A, DETAIL B

WHERE A.GROUP = B.GROUP

 


by 게릴라 [2016.10.26 10:19:10]

앗 여기도~!^^

DEV03님 감사합니다^^

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입