일단 테이블은 2개가 있습니다
area prod_id sales_cnt region
10 00001 4 cn
20 00002 2 jp
SALES_CNT는 판매 수량입니다
이런식으로 쭈욱 많은 데이터가 있고
다른 테이블은
cd_id cd_nm
10 서울
20 부산
00001 안마기
00002 냉장고
이런식으로 있습니다
expt 안마기(%) 냉장고(%) ~~~~ 판매량
서울=>us 3200(9.8%) 1234(4%) 12312415
서울=>cn 3200(9.8%) 1234(4%) 12312415
서울 총계 6400(10%) 2468(4%) 24624830
부산=>us 3200(9.8%) 1234(4%) 12312415
부산=>cn 3200(9.8%) 1234(4%) 12312415
부산 총계 6400(10%) 2468(4%) 24624830
총계 123421(10%) 123421(10%) 2523235435
이런식으로 나타나게 sql문을 짜고 싶은데 sum, rollup을 사용해야 되는거는 알겟는데
두 테이블을 어떻게 조인해서 사용 해야 할지 감이 안오네요 좀 도와 주세요~~
WITH TT_CD(cd_id, cd_nm) AS ( SELECT '10', '서울' FROM DUAL UNION ALL SELECT '20', '부산' FROM DUAL UNION ALL SELECT '00001', '안마기' FROM DUAL UNION ALL SELECT '00002', '냉장고' FROM DUAL ) , TT_SAL(area, prod_id, sales_cnt, region) AS( SELECT '10', '00001', 3200, 'us' FROM DUAL UNION ALL SELECT '10', '00002', 1234, 'us' FROM DUAL UNION ALL SELECT '10', '00001', 3200, 'cn' FROM DUAL UNION ALL SELECT '10', '00002', 1234, 'cn' FROM DUAL UNION ALL SELECT '20', '00001', 3200, 'us' FROM DUAL UNION ALL SELECT '20', '00002', 1234, 'us' FROM DUAL UNION ALL SELECT '20', '00001', 3200, 'cn' FROM DUAL UNION ALL SELECT '20', '00002', 1234, 'cn' FROM DUAL ) SELECT DECODE(AA.region, NULL, BB.CD_NM||'총계', BB.CD_NM||'=>'||AA.region) EXPT , SUM(DECODE(AA.prod_id,'00001',AA.sales_cnt,0)) 안마기 , SUM(DECODE(AA.prod_id,'00002',AA.sales_cnt,0)) 냉장고 , SUM(DECODE(AA.prod_id,'00001',AA.sales_cnt,0)) + SUM(DECODE(AA.prod_id,'00002',AA.sales_cnt,0)) 판매량 FROM TT_SAL AA , TT_CD BB WHERE AA.area = BB.cd_id GROUP BY BB.CD_NM, ROLLUP(AA.region) ORDER BY MAX(AA.area) ;
%는 어떤 기준으로 구해야 할까요?