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
운영게시판
최근게시물
PostgreSQL Q&A 7065 게시물 읽기
No. 7065
어떤게 좋아요?
작성자
또질문
작성일
2007-02-28 01:38ⓒ
2007-02-28 01:45ⓜ
조회수
4,187

아래 글들에 답변 잘 해주셔서.. 또 질문 할께요~ ^^; 미리 감사 드립니다..^______^


화면에서 kemmeicd,rirekicd,fppatanitemcd 세가지를 이용해서 검색한 데이터의

editflg를 0(수정전)으로 하고 그걸 카피하고 editflg를 1(수정후)로 한 다음에요.

editflg가 1인 데이터를 수정하거나 더 추가 하거든요.

그리고 나서 

editflg가 0인거 하고 1인거 하고 비교해서

kemmeicd,rirekicd,fppatanitemcd는 같고 그이외의 데이터가 다른 데이터가 있는 가를 찾는 건데요.

(fpdatafunctionwk테이블의key는 kemmeicd,rirekicd,fppatanitemcd,filetypecd,fileseq,editflg에요.)

(참고로 java 스트럿츠프렘워크 쓰구 있어요)


어떤 sql을 쓰는게 좋을까요? ① ? ② ? 아니면 더 좋은 방법이 있을 까요?


①↓이건 함 실행 해 봤어요

select A.cntDiff + B.cntNot as cnt

from

(select count(1) as cntDiff

from fpdatafunctionwk afterData

where kemmeicd = '0606' and rirekicd = '0001' and fppatanitemcd = '01' and  editflg = 1

and

EXISTS ( select 1 from fpdatafunctionwk beforeData

where

beforeData.kemmeicd = afterData.kemmeicd

and beforeData.rirekicd = afterData.rirekicd

and beforeData.fppatanitemcd = afterData.fppatanitemcd

and beforeData.filetypecd = afterData.filetypecd

and beforeData.fileseq = afterData.fileseq

and editflg = 0

and (

beforeData.filenm != afterData.filenm

or beforeData.det != afterData.det

or beforeData.ret != afterData.ret

or beforeData.uniquekey != afterData.uniquekey)

 )) A,

(

select count(1) as cntNot

from fpdatafunctionwk afterData

where kemmeicd = '0606' and rirekicd = '0001' and fppatanitemcd = '01' and  editflg = 1

and

NOT EXISTS ( select 1 from fpdatafunctionwk beforeData

where

beforeData.kemmeicd = afterData.kemmeicd

and beforeData.rirekicd = afterData.rirekicd

and beforeData.fppatanitemcd = afterData.fppatanitemcd

and beforeData.filetypecd = afterData.filetypecd

and beforeData.fileseq = afterData.fileseq

and editflg = 0

)B


②↓이건 아직 실행은 안 시켜 봤어요

select A.cntDiff - B.cntNot as cnt

from

(select count(*) as cntDiff from fpdatafunctionwk beforeData

where kemmeicd = '0606' and rirekicd = '0001' and fppatanitemcd = '01' and  editflg = 0) A,

(select count(*) as cntNot from fpdatafunctionwk afterData

where kemmeicd = '0606' and rirekicd = '0001' and fppatanitemcd = '01' and  editflg = 1) B


이 sql을 실행 시킨 결과cnt가 0이 아니면 아래 sql을 한번 더 실행 함


select count(1) as cntDiff

from fpdatafunctionwk afterData

where kemmeicd = '0606' and rirekicd = '0001' and fppatanitemcd = '01' and  editflg = 1

and

EXISTS ( select 1 from fpdatafunctionwk beforeData

where

beforeData.kemmeicd = afterData.kemmeicd

and beforeData.rirekicd = afterData.rirekicd

and beforeData.fppatanitemcd = afterData.fppatanitemcd

and beforeData.filetypecd = afterData.filetypecd

and beforeData.fileseq = afterData.fileseq

and editflg = 0

and (

beforeData.filenm != afterData.filenm

or beforeData.det != afterData.det

or beforeData.ret != afterData.ret

or beforeData.uniquekey != afterData.uniquekey)

 )


[Top]
No.
제목
작성자
작성일
조회
7069트리거는 어떻게 해야하는지.. [1]
스치는인연
2007-03-02
4521
7067해당 필드에 유니코드데이타가 들어있는지 아는 방법? [5]
dba
2007-02-28
5596
7066퍼미션 문제 [1]
조수한
2007-02-28
4346
7065어떤게 좋아요?
또질문
2007-02-28
4187
7064view에 관해서도 질문이 있어요 [2]
smalli04
2007-02-27
4581
7063PQgetvalue() 의 값에 관한 질문이요 [1]
김대현
2007-02-27
4306
7062이런식으로 검색하는 걸 어떻게 생각하세요? [2]
smalli04
2007-02-27
3974
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.027초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다