| 고객번호 C_NO | 구분코드1 G_CODE_1 | 구분코드2 G_CODE_2 | 구분코드3 G_CODE_3 | 구분코드4 G_CODE_4 |
테이블 A (5개 컬럼 모두 PK)
| 고객번호 C_NO | 구분코드1 G_CODE_1 | 구분코드2 G_CODE_2 | 구분코드3 G_CODE_3 | 구분코드4 G_CODE_4 | 데이타 DATA_1 | 데이타 DATA_2 | 금액 AMT |
테이블 B (고객번호~구분코드4 PK)
select A.C_NO
,A.G_CODE_1
,A.G_CODE_2
,A.G_CODE_3
,A.G_CODE_4
,( select sum(amt)
from B
where A.C_NO = B.C_NO
and A.G_CODE_1 = B.G_CODE_1
and A.G_CODE_2 = B.G_CODE_2
and A.G_CODE_3 = B.G_CODE_3
and A.G_CODE_4 = B.G_CODE_4
and B.DATA_1 = '000001' )
,( select sum(amt)
from B
where A.C_NO = B.C_NO
and A.G_CODE_1 = B.G_CODE_1
and A.G_CODE_2 = B.G_CODE_2
and A.G_CODE_3 = B.G_CODE_3
and A.G_CODE_4 = B.G_CODE_4
and B.DATA_1 = '000002' )
/*
B.DATA_1의 값이 000001 부터 쭈우우욱 계쏙 있다고 가정..
B.DATA_2의 값이 000001 부터 쭈우우욱 계쏙 있다고 가정..
이 때 각각의 PK들에 대한 B 테이블의 AMT 값을 구하려고 합니다.
이하 생략
*/
from A
질문드리겠습니다 ㅠㅠ!!!
select절에 서브쿼리에 예시로 00001,00002의 값에 대한 sum값을 가져오는 부분이 있는데요~
00001 부터 값이 계속 있어서 항목이 많아지면 속도가 그만큼 느려져서... 혹시 효율적으로 가져올 수 있는 방법이 있는지 궁금합니다..!
감사합니당..
SELECT a.c_no
, a.g_code_1
, a.g_code_2
, a.g_code_3
, a.g_code_4
, SUM(DECODE(b.data_1, '000001', b.amt)) amt_1
, SUM(DECODE(b.data_1, '000002', b.amt)) amt_2
, SUM(DECODE(b.data_1, '000003', b.amt)) amt_3
, SUM(DECODE(b.data_1, '000004', b.amt)) amt_4
, SUM(DECODE(b.data_1, '000005', b.amt)) amt_5
FROM tab_a a
LEFT OUTER JOIN tab_b b
ON a.c_no = b.c_no
AND a.g_code_1 = b.g_code_1
AND a.g_code_2 = b.g_code_2
AND a.g_code_3 = b.g_code_3
AND a.g_code_4 = b.g_code_4
GROUP BY a.c_no, a.g_code_1, a.g_code_2, a.g_code_3, a.g_code_4
ORDER BY a.c_no, a.g_code_1, a.g_code_2, a.g_code_3, a.g_code_4
;
앗 마농님이다!! 안녕하세요
회원가입은 안 된 상태로 구루비에 종종 놀러오곤 했었는데 마농님 답변글 잘 보고 있었습니다.ㅎㅎ
이번에 첫 게시글을 남겼었는데 답변을 주셔서 너무 감사합니다