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 39762 게시물 읽기
No. 39762
최근 일자 관련 쿼리 질문
작성자
PCI
작성일
2012-11-21 16:50
조회수
6,138

 

아래와 같이 사원발령 테이블에서 조건일자 이전 발령 사항 중에서

해당 코드에 해당하는 최근 값 및 조건일자 이전 최근 발령사항 (부서 등등) 자료를 조회 하고 싶습니다.  -> 사번당 한건데이터

쿼리는 아래처럼 작성하였는데 비효율적인것 같아 질문드립니다.

테이블을 한번만 읽고도 조회가 가능한지요?

사번 발령코드  발령일자 부서
111111 10 19980101 AAA
111111 20 20010301 BBB
111111 30 20030305 CCC
111111 40 20050606 DDD
111111 50 20070809 EEE
111111 60 20090709 FFF

 

 

 

SELECT *
  FROM (SELECT 사번,
               MAX(DECODE(뱔령코드, '10', 발령일자, TO_DATE(NULL))) BAL_10, --최근 휴직일자
               MAX(DECODE(뱔령코드, '20', 발령일자, TO_DATE(NULL))) BAL_20, --최근 승진
               MAX(DECODE(뱔령코드, '30', 발령일자, TO_DATE(NULL))) BAL_30 --최근 부서이동 일자
          FROM 사원테이블
          WHERE 발령일자 < '20120101'
         GROUP BY 사번) A,
       (SELECT 사번, 발령코드, 부서, 발령일자, RNUM
          FROM (SELECT 사번,
                       발령코드,
                       부서,
                       발령일자,
                       ROW_NUMBER() OVER(PARTITION BY 사번 ORDER BY 발령일자 DESC) RNUM
                  FROM 사원테이블
                  WHERE 발령일자 < '20120101'
                  )
         WHERE RNUM = 1) B
WHERE A.사번 = B.사번         
 

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

SELECT 사번
     , MAX(DECODE(뱔령코드, '10', 발령일자)) bal_10 -- 최근 휴직일자
     , MAX(DECODE(뱔령코드, '20', 발령일자)) bal_20 -- 최근 승진일자
     , MAX(DECODE(뱔령코드, '30', 발령일자)) bal_30 -- 최근 이동일자
     -- 최근 발령사항 --
     , MAX(발령코드) KEEP(DENSE_RANK LAST ORDER BY 발령일자) 발령코드
     , MAX(부서    ) KEEP(DENSE_RANK LAST ORDER BY 발령일자) 부서
     , MAX(발령일자) 발령일자
  FROM 사원테이블
 WHERE 발령일자 < '20120101'
 GROUP BY 사번
 ORDER BY 사번
;

마농(manon94)님이 2012-11-21 17:57에 작성한 댓글입니다.

마농님 감사합니다

많은 도움이 되었습니다 ^^

PCI님이 2012-11-21 18:07에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39768parall 도움 요청 [2]
leesungoh
2012-11-23
6589
39767연속된 데이터 카운팅하여 보여주기 [3]
승현아빠
2012-11-22
7558
39766DB 다른 계정의 테이블을 조회하고싶습니다. [2]
새하정
2012-11-22
8131
39762최근 일자 관련 쿼리 질문 [2]
PCI
2012-11-21
6138
39749마농님 급하게 질문이 있어요
조기영
2012-11-20
5847
39747아마 불가능하겠지만..혹시나해서 문의 드립니다. [2]
새하정
2012-11-19
6071
39746오라클(Oracle)을대용할수있는,오픈소스의갑(甲)PostgreSQL!!!
포스트그레스SQL
2012-11-16
6338
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다