JOIN문 들어간 월별누계 관련 0 4 789

by 동글222 [2016.12.08 10:21:00]



      날짜           번호  출력순서 금액구분  금액
       2016/01/02    1       1            A    10000
       2016/01/02    1       2            B    10000
       2016/01/11    2       1            A    20000  
       2016/02/22    3       1            A    10000
       2016/02/23    4       1            B    20000

결과
날짜           번호       금액1       금액2
2016/01/02    1       10000        
2016/01/02    1                       10000
2016/01/11    2       20000
누계                      30000         10000
2016/02/22    3       10000 
2016/02/23    4                        20000
누계                    10000           20000 

월별로 누계를 내서 보여주고, 금액구분이 A이면 금액1컬럼에 금액값이 들어가야하고, B이면 금액2컬럼에 금액값이 들어가야합니다... 
또한 테이블이 날짜컬럼은 T1테이블에있고.. 나머지는 T2테이블에 있습니다. 
그리고 SELECT절에서 GROUP BY절을 하면 다른컬럼을 못가져오는데.. 위에결과에 올린 컬럼 외에 다른 컬럼들도 필요합니다..ㅠㅠ
어떻게 쿼리를 짜면 좋을까요?ㅠㅠ
답변 주시면 감사하겠습니다! ㅠ

by 마농 [2016.12.08 11:12:47]

구체적으로 적어주세요.

어떤 테이블에 어떤 컬럼이 필요한지?, 조인 키는 뭔지?


by 동글222 [2016.12.08 11:15:47]

조인키는 번호컬럼입니다..

다른필요한 컬럼은 T2테이블의 DEPT_CD, EMP_CD 컬럼입니다.. 그룹바이에 아예 쓰이지 않는 컬럼이요ㅠㅠ


by 마농 [2016.12.08 13:31:49]
WITH t1 (날짜, 번호, 출력순서, 금액구분, 금액) AS
(
          SELECT '2016/01/02', 1, 1, 'A', 10000 FROM dual
UNION ALL SELECT '2016/01/02', 1, 2, 'B', 10000 FROM dual
UNION ALL SELECT '2016/01/11', 2, 1, 'A', 20000 FROM dual
UNION ALL SELECT '2016/02/22', 3, 1, 'A', 10000 FROM dual
UNION ALL SELECT '2016/02/23', 4, 1, 'B', 20000 FROM dual
)
, t2 (번호, dept_cd, emp_cd) AS
(
          SELECT 1, 11, 111 FROM dual
UNION ALL SELECT 2, 22, 222 FROM dual
UNION ALL SELECT 3, 33, 333 FROM dual
UNION ALL SELECT 4, 44, 444 FROM dual
)
SELECT SUBSTR(t1.날짜, 1, 7) 년월
     , NVL(t1.날짜, '누계') 날짜
     , t1.번호
     , t1.출력순서
     , t2.dept_cd
     , t2.emp_cd
     , SUM(DECODE(금액구분, 'A', 금액)) 금액a
     , SUM(DECODE(금액구분, 'B', 금액)) 금액b
  FROM t1
     , t2
 WHERE t1.번호 = t2.번호
 GROUP BY SUBSTR(t1.날짜, 1, 7)
     , ROLLUP((t1.날짜, t1.번호, t1.출력순서, t2.dept_cd, t2.emp_cd))
;

 


by 동글222 [2016.12.08 14:22:10]

정말 감사합니다!! ㅠㅠㅠ

덕분에 바로 해결했습니다!!  더 열심히 공부해야겠습니다 ㅠㅠ

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