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 38975 게시물 읽기
No. 38975
이력조회쿼리문을 만들려고합니다.
작성자
오라초(ksy)
작성일
2011-10-17 06:19
조회수
4,369

기본 테이블 ( no, chasu, cod1, cod2, cod3)과

기본테이블과 연관된 항목테이블(no,chasu,sunbun,cod11,cod22,cod33)에

cod1,cod2,cod3,cod11,cod22,cod33에 대한 변경전,후 내역을 가져오려고 합니다.

일단 단순하게 차수가 있어서 cod1,cod2,cod3은 max(chasu), max(chasu-1)로 가져오겠는데

기본테이블과 연관된 항목테이블의 값을 가져오려고 chasu를 조건으로 넣으니 이전 차수가 없어진경우는 얻어오지 못하겠습니다.

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

이력변경 전후 비교 같은 쿼리는 lead 함수를 이용하면 쉽게 만들 수 있습니다.
lead는 쿼리 결과 중 아래행의 값을 현재행의 옆으로 끌어올리는 기능을 합니다.
만약 아래처럼 쿼리하게 되면
--------------------------------------------------------------------------------
select sunbun,
       col11, lead(col11,1) over (order by sunbun) as col11_1,
       col22, lead(col22,1) over (order by sunbun) as col22_1,
       col33, lead(col33,1) over (order by sunbun) as col33_1
from 이력테이블
where no = 1
  and chasu = 1
order by sunbun
--------------------------------------------------------------------------------
바로 이전 이력이 옆 컬럼으로 나오므로 비교하여 변경이 없는건은 제외한다던지
변경된 항목을 화면에 색상표시한다던지 하는 경우에 이용할 수 있습니다.

이걸 이용하시면 쉽게 해결되실것 같습니다.
그리고 참고로 반대개념의 함수는 lag입니다.

허종진(ptculi)님이 2011-10-20 12:26에 작성한 댓글입니다.
이 댓글은 2011-10-20 12:31에 마지막으로 수정되었습니다.

 

댓글감사합니다. 고민고민하다가 지저분하게 만들기는 했습니다.

알려주신방법대로 다시 고쳐보고있는데 이전값이 없다가 생기거나, 있던값이 사라진경우는 나타나지가 않습니다..ㅜㅡㅜ..

다시한번 글올리겠습니다. 그때도 또 염치없지만 부탁드립니다..ㅅㅅ;;;;;

오라초님이 2011-11-10 13:52에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38980trigger 질문 드립니다..꼭 부탁해요...^^;; 아 머리야... [1]
박정호
2011-10-18
4221
38978GREATEST에서 최대값 갯수 및 위치 알아내기 [3]
이장
2011-10-17
4146
38977전후 데이터의 시간차이 계산시 [2]
달타냥
2011-10-17
5585
38975이력조회쿼리문을 만들려고합니다. [2]
오라초
2011-10-17
4369
38970테이블스페이스말고 테이블단위로 복원이되나요? [2]
임서희
2011-10-14
3653
38969fuction 생성시 질문입니다. [4]
초보
2011-10-14
3693
38967결과값에 따라서 새로운 값으로 변경 [2]
qa
2011-10-14
3605
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.015초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다