값이 중복이 떠서 문의드립니다 테이블값과 결과값 첨부해보았습니다. SELECT CASE when GROUPING(CUST_CD)=0 AND GROUPING(OUT_DT)=1 THEN '소계' WHEN GROUPING(CUST_CD)=1 AND GROUPING(OUT_DT)=1 THEN '총계' ELSE CUST_CD END CUST_CD, DECODE(GROUPING(OUT_DT), 1, '', max(PRS_DT)) PRS_DT , DECODE(GROUPING(OUT_DT), 1, '', OUT_DT) OUT_DT, CASE WHEN GROUPING(OUT_DT)=1 AND GROUPING(CUST_CD)=0 THEN MAX(CUST_NM) WHEN GROUPING(OUT_DT)=1 THEN '' ELSE MAX(CUST_NM) END CUST_NM, DECODE(GROUPING(OUT_DT), 1, '', MAX(ITEM_CD)) ITEM_CD, DECODE(GROUPING(OUT_DT), 1, '', MAX(ITEM_NM)) ITEM_NM, DECODE(GROUPING(OUT_DT), 1, '', MAX(COMP_CD)) COMP_CD, SUM(OUT_QTY) OUT_QTY, SUM(TOT_COMPR) TOT_COMPR, SUM(TOT_COMPF) TOT_COMPF FROM TABLEXX GROUP BY ROLLUP(CUST_CD, OUT_DT, ITEM_CD) ;
테이블값
CUST_CD | PRS_DT | OUT_DT | CUST_NM | ITEM_CD | ITEM_NM | OUT_QTY | TOT_COMPF | TOT_COMPR | COMP_CD |
1000104 | 20190802 | 20190802 | 공명 | 601727 | 해바라기 | 1 | 0 | 100 | 제품 |
1000104 | 20190801 | 20190801 | 공명 | 601727 | 해바라기 | 1 | 0 | 100 | 제품 |
결과값
CUST_CD | PRS_DT | OUT_DT | CUST_NM | ITEM_CD | ITEM_NM | COMP_CD | OUT_QTY | TOT_COMPR | TOT_COMPF |
1000104 | 20190801 | 20190801 | 공명 | 601727 | 해바라기 | 제품 | 1 | 100 | 0 |
1000104 | 20190801 | 20190801 | 공명 | 601727 | 해바라기 | 제품 | 1 | 100 | 0 |
1000104 | 20190802 | 20190802 | 공명 | 601727 | 해바라기 | 제품 | 1 | 100 | 0 |
1000104 | 20190802 | 20190802 | 공명 | 601727 | 해바라기 | 제품 | 1 | 100 | 0 |
소계 | 공명 | 2 | 200 | 0 | |||||
총계 | 2 | 200 | 0 |
중복이 뜨는 이유를 잘모르겟어서 문의드립니다.
GROUP BY 는 CUST_CD,OUT_DT,ITEM_CD 이렇게 하고싶고
소계는 거래처마다 하나씩뜨게 하고싶습니다.