안녕하세요 작업중에 도통 좋은 생각이 안떠올라 고수분들께 질문드립니다.
다음과 같은 구조의 테이블이 있는데 여기서 결과와 같이 sql을 작성하려는데
잘 안되서 도움을 구하게 되었네요..
with t as
(
select '등록일' ,'상품코드' ,'업체코드','처리상태' from dual
UNION ALL select '2013/05/13','1000','V100','승인' from dual
UNION ALL select '2013/05/13','1000','V100','승인' from dual
UNION ALL select '2013/05/13','2000','V200','답변완료' from dual
UNION ALL select '2013/05/13','2000','V200','승인' from dual
UNION ALL select '2013/05/13','2000','V200','승인' from dual
UNION ALL select '2013/05/13','3000','V200','반려' from dual
UNION ALL select '2013/05/13','4000','V300','승인' from dual
UNION ALL select '2013/05/13','2000','V300','반려' from dual
UNION ALL select '2013/05/13','3000','V200','승인' from dual
UNION ALL select '2013/05/13','2000','V200','반려' from dual
UNION ALL select '2013/05/14','1000','V100','승인' from dual
UNION ALL select '2013/05/14','1000','V100','승인' from dual
UNION ALL select '2013/05/14','2000','V100','답변완료' from dual
UNION ALL select '2013/05/14','2000','V100','답변완료' from dual
UNION ALL select '2013/05/14','2000','V100','승인' from dual
UNION ALL select '2013/05/14','2000','V200','반려' from dual
UNION ALL select '2013/05/14','2000','V200','승인' from dual
UNION ALL select '2013/05/14','2000','V200','반려' from dual
UNION ALL select '2013/05/14','2000','V200','승인' from dual
UNION ALL select '2013/05/14','2000','V200','반려' from dual
)
원하는 결과는 다음과 같습니다...
등록일 총건수 상품코드수 공급사수 답변완료된상품코드 승인된상품코드 반려된상품코드
2013/05/13 10 4 3 1 4 2
2013/05/14 10 2 2 1 2 1
====================================================================
결과를 구하는데 총건수,상품코드,공급사수는 일자별 그룹하여 count(distinct 상품코드),count(distinct 공급사수)
이렇게 구하였습니다.
그런데 처리상태를 구하지 못하겠습니다.
13일날 등록된 상품이 총 10건중 승인이 6건이지만
승인된 6건의 상품코드 가 1000,2000,3000,4000 이므로
"승인" 수는 3개 라고 표기 하고 싶습니다.
반려 역시 13일날 등록된 상품중 반려가 3건이지만 반려된 상품코드는 2000,3000 이르모 2개 로 표기 하고 싶습니다.
답변완료도 마찬가지구요...
도움 부탁드립니다.. |