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
운영게시판
최근게시물
MySQL Q&A 30220 게시물 읽기
No. 30220
서브쿼리 문의드립니다.
작성자
다중이
작성일
2012-03-05 21:28ⓒ
2012-03-05 22:08ⓜ
조회수
7,525

sid name STEPID status
d-001 유재석 1 결재
d-001 박명수 2 결재
d-001 노홍철 3 결재
d-002 정준하 1 결재
d-002 정형돈 2 결재
d-003 유재석 1 결재
d-003 길 2 받음
d-004 유재석 1 받음
d-005 김태호 2 


 

위와 같은 데이터를 가진 테이블이 있습니다.

가지고 오고 싶은 조건은

유재석 : 결재 인 상태에서 유재석의 STEPID + 1 의 값을 가진 레코드에서 status='받음' 을 가지고 있는 갯수를 가져오고 싶습니다.

d-003 항목이 문서가 유재석(결재), 길(받음) 이므로 제가 원하는 데이터인데요..

고수님들의 많은 조언 부탁드립니다.

 


 CREATE TABLE app
 (
  uid INT auto_increment,
  sid varchar(10),
  name varchar(10),
  stepid int(2),
  status varchar(10),
  PRIMARY KEY ( uid )
 );

INSERT INTO app(sid,name,stepid,status) VALUES( 'd-001','유재석',1,'결재');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-001','박명수',2,'결재');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-001','노홍철',3,'결재');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-002','정준하',1,'결재');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-002','정형돈',2,'결재');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-003','유재석',1,'결재');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-003','길',2,'받음');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-004','유재석',1,'받음');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-004','김태호',2,'');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-005','유재석',1,'결재');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-005','박명수',2,'받음');
INSERT INTO app(sid,name,stepid,status) VALUES( 'd-005','노홍철',3,'');
 

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

SELECT pay.sid, count(*)
FROM app AS pay
INNER JOIN app AS recv ON pay.sid = recv.sid AND pay.stepid + 1 = recv.stepid
AND pay.status = '결재' AND recv.status = '받음'
WHERE pay.name = '유재석'
GROUP BY pay.sid;

 

sid 기준으로 결재를 하고 그 다음 step에서 받은 기록이 있는 것에 대한 count를 하는 것으로 생각하면

주어진 예제 데이터에서 d-003과 d-005가 각각 1건씩 만족하는 것으로 보이는데요...

우욱님이 2012-03-05 22:16에 작성한 댓글입니다. Edit

우욱님... 감사합니다...

 

말씀하신대로 d-003과 d-005 두개의 데이터가 나오는게 맞아요..!!

머리싸매고 고민했는데...한방의 해결 감사합니다..

너무너무 감사합니다.

다중이님이 2012-03-05 22:21에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
30223query 문구를 java에서 가져오기 [1]
김석민
2012-03-09
7609
30222카테고리별 건수 [1]
색연필
2012-03-08
7745
30221DB 가 euc-kr 인데 일본어 중국어 등록이 됩니다. [2]
박순채
2012-03-07
10223
30220서브쿼리 문의드립니다. [2]
다중이
2012-03-05
7525
302193년 전 강의에서 MySQL버전이 6.x 인데.... 현재 버전은 5.5.. [2]
질문
2012-03-05
8789
30217mysql 원격접속에 문제가 있네요ㅠ [1]
안혜진
2012-03-01
8267
30216쿼리문 질문입니다. [1]
이정희
2012-02-28
7283
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다