2010년 12월 26일 일요일

오라클 인원합계 소계 총계 오라클이건요?

오라클 인원합계 소계 총계 오라클이건요?

오라클 오라클 인원합계 소계 총계



      회사명  부서명  사번   이름   직책  등등등등..

01 (주)A사 전산팀 105102 A군     팀원 510 사원 2009-06-22 

01 (주)A사 전산팀 105352 B군  팀원 510 사원 2010-02-22 

01 (주)A사 전산팀 105549 C군  팀원 510 사원 2010-07-26 

01 (주)A사 마케팅본부 103692 D군  본부장 130 전무이사 

01 (주)A사 마케팅팀 103704 E군  팀장 320 차장 2006-06-01 

01 (주)A사 마케팅팀 102141 F군  팀원 410 대리 2003-11-10 

01 (주)A사 마케팅팀 103799 G군  팀원 410 대리 2007-05-07 

 

위와 같은 데이터가 있을때

 

      회사명  부서명  사번   이름

01 (주)A사 전산팀 105102 A군 

01 (주)A사 전산팀 105352 B군

01 (주)A사 전산팀 105549 C군

                전산팀   3명

01 (주)A사 마케팅본부 103692 D군

                마케팅본부 1명

01 (주)A사 마케팅팀 103704 E군

01 (주)A사 마케팅팀 102141 F군

01 (주)A사 마케팅팀 103799 G군

                마케팅팀  3명

 

이렇게 표현하고 싶거든요..

그냥 ROLLUP 이나 이런거 쓸려면 GROUP핑을 하거나.. 해야되는거 같은데..

이건 GROUP BY를 쓰지 않는데이터라서..

단순히 SUM 하는것도 아니고..

 

쿼리 첨부합니다 .수정부탁해요.

 

SELECT HM.TREE_CODE AS TREE_CODE

   , TCV.TREE_NAME AS TREE_NAME

   , HM.DEPT_CODE AS DEPT_CODE

   , DGV.DEPT_4_NAME AS DEPT_4_NAME

   , HM.PERSON_NUMB AS PERSON_NUMB

   , HM.NAME AS NAME

FROM HM_MASTER HM

   , IFC_HR_TREE_CODE_V TCV

   , IFC_HR_DEPT_GROUP3_V  DGV

WHERE HM.TREE_CODE = TCV.TREE_CODE(+)

AND HM.DEPT_CODE = DGV.DEPT_CODE(+)



오라클
추천 인기사이트 바로가기

클릭하시면 오라클관련 추천사이트를 보실 수 있습니다.
























오라클이시니까 쉽게 풀어볼계요
단계별로 진행합니다.
데이터는 임의로 만들었습니다. 참고하셔서 적용해보세요
요약하면 Catecian Join으로 해결할수 있습니다.
 
SELECT *
FROM EMPLOYEE2
    ,(SELECT rownum seq FROM ALL_OBJECTS WHERE rownum < 3)
;
 
 
SELECT seq
      ,tCode
      ,tName
      ,dName
      ,decode(seq,1,sNo,sum(1) over(partition by decode(seq,1,tCode),decode(seq,1,tName),dName)) sno
      ,decode(seq,1,eName) eName
FROM EMPLOYEE2
    ,(SELECT rownum seq FROM ALL_OBJECTS WHERE rownum < 3)
;
 
 
SELECT decode(seq,1,tCode,'') "회사코드"
      ,decode(seq,1,tName,'') "회사명"
      ,dName "부서명"
      ,sno||decode(seq,2,'명') "사번"
      ,eName "이름"
FROM  (
        SELECT seq
              ,tCode
              ,tName
              ,dName
              ,decode(seq,1,sNo,sum(1) over(partition by decode(seq,1,tCode),decode(seq,1,tName),dName)) sno
              ,decode(seq,1,eName) eName
        FROM EMPLOYEE2
            ,(SELECT rownum seq FROM ALL_OBJECTS WHERE rownum < 3)
      ) a
GROUP BY a.seq,a.tCode,a.tName,a.dName,a.sno,a.eName
ORDER BY a.tCode,a.tName,a.dName,a.seq
;
  



오라클오라클 인원합계 소계 총계


댓글 없음:

댓글 쓰기