database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 40133 게시물 읽기
No. 40133
날짜별 코드별 상태집계 관련 도움 부탁드립니다.
작성자
디비하수(toaks93)
작성일
2013-05-15 16:35ⓒ
2013-05-15 16:36ⓜ
조회수
7,621

안녕하세요 작업중에 도통 좋은 생각이 안떠올라 고수분들께 질문드립니다.

다음과 같은 구조의 테이블이 있는데 여기서 결과와 같이 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개 로 표기 하고 싶습니다.

답변완료도  마찬가지구요...

도움 부탁드립니다..

이 글에 대한 댓글이 총 2건 있습니다.

 SELECT 등록일

     , COUNT(*) 총건수
     , COUNT(DISTINCT 상품코드) 상품코드수
     , COUNT(DISTINCT 업체코드) 공급사수
     , COUNT(DISTINCT DECODE(처리상태, '답변완료', 상품코드)) 답변완료된상품코드
     , COUNT(DISTINCT DECODE(처리상태,    '승인', 상품코드)) 승인된상품코드
     , COUNT(DISTINCT DECODE(처리상태,    '반려', 상품코드)) 반려된상품코드    
  FROM t
 GROUP BY 등록일 
 ORDER BY 등록일

 

아린(arin76)님이 2013-05-16 10:06에 작성한 댓글입니다.
이 댓글은 2013-05-16 10:07에 마지막으로 수정되었습니다.

아린님 정말 감사합니다.

부족한 실력 열심히 키울께요~~!!!

디비하수님이 2013-05-16 11:08에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40137조언 부탁드려요~ [3]
조기영
2013-05-20
6577
40136ORA-12592 오류 [1]
강병구
2013-05-20
12339
40134상하위 3%제외한 평균값 [2]
조형래
2013-05-20
6811
40133날짜별 코드별 상태집계 관련 도움 부탁드립니다. [2]
디비하수
2013-05-15
7621
40132SQL update and insert [2]
ohyouknow
2013-05-15
7010
40131해당 프로시져럴 생성하면 오류와함께 생성이되네요. [1]
새하정
2013-05-15
6775
40130connect by 로 구현한 결과 하위정보 sum 하기 [2]
무는무다
2013-05-15
6794
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다