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 39315 게시물 읽기
No. 39315
결재 할 순서대로 보여주기
작성자
바램
작성일
2012-02-25 10:28ⓒ
2012-02-25 10:35ⓜ
조회수
4,485

 

자신의 직위에서 자신보다 상급자가 결재가 끝나면 결재요청을 하려는 쿼리를 짜려고 하는데요.
여러가지로 시도해 봤는데요. 실패했습니다.

seq level_cnt level_dept id dept app app_date
201 1 111 aa 사장 승인 2012-02-20
207 2 115 ab 상무 승인 2012-02-21
220 3 120 ac 이사 대기  
222 4 122 ad 부장 대기  
234 5 150 ae 과장 대기  
... ... ... ... ... ... ...

 

만약 사장과 상무가 승인을 하게 되면 쿼리를 리스트로 출력할 때
dept: '이사'인 경우에만 결재 할 차례가 되었기 때문에 자신의 아이디로 로그인 했을 때 리스트에서 보여져야 하고
사장과 상무 그리고 부장, 과장은 로그인을 해도 보여지지 않게 해야 합니다.

작업을 해 보니까 쿼리 상에서 자신의 윗 상사인 상무가 '승인'을 했는지 체크 해야 하는 것 같았습니다.
그리고 추가적으로 level_cnt는 3번까지도 있을 수 있고 10번까지도 있을 수 있어서 가변적입니다.

부탁드리겠습니다.

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

위 결재리스트가 동일한 문서에 대한 것이라는 걸 판별할 기준키가 안보이네요.
문서번호(doc_no)가 키로 존재할 듯 합니다.

WITH t(doc_no, seq, level_cnt, level_dept, id, dept, app, app_date) AS
(
SELECT 1, 201, 1, 111, 'aa', '사장', '승인', '2012-02-20' FROM dual
UNION ALL SELECT 1, 207, 2, 115, 'ab', '상무', '승인', '2012-02-21' FROM dual
UNION ALL SELECT 1, 220, 3, 120, 'ac', '이사', '대기', '' FROM dual
UNION ALL SELECT 1, 222, 4, 122, 'ad', '부장', '대기', '' FROM dual
UNION ALL SELECT 1, 234, 5, 150, 'ae', '과장', '대기', '' FROM dual
)
SELECT a.*
  FROM t a
     , t b
 WHERE a.id  = :v_id    -- 로그인ID
   AND a.app = '대기'
   AND a.doc_no = b.doc_no(+)
   AND a.level_cnt - 1 = b.level_cnt(+)
   AND NVL(b.app, '승인') = '승인'
;

마농(manon94)님이 2012-02-27 10:04에 작성한 댓글입니다.

답변 감사합니다.^^

바램님이 2012-02-27 11:07에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39318개발서버. OS가 갑자기..깨지는바람에 ㅜㅜ,,,,,
흠흠흠
2012-02-27
3066
39317테이블 생성시 키 값에 대해.. [1]
아폴론
2012-02-27
3262
39316가로로 출력 하는방 법좀 조언 부탁합니다. [3]
강옥석
2012-02-27
5644
39315결재 할 순서대로 보여주기 [2]
바램
2012-02-25
4485
39314롱러닝 쿼리 진행률 알 수 있는 방법 있나요? [2]
슬라임
2012-02-24
3931
39313가로 데이터를 세로 형식으로
장형욱
2012-02-24
4054
39312컬럼을 파싱하여 order by 입니다. [4]
sysopmin
2012-02-24
4820
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다