아래 글들에 답변 잘 해주셔서.. 또 질문 할께요~ ^^; 미리 감사 드립니다..^______^
화면에서 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)
)
|