1. 첫번째 쿼리.(기존소스)
SELECT SINGLE zdate INTO lv_date
FROM ztable
WHERE fd1 = lv_id
AND fd2 = lv_acc
AND fd3 = lv_cd
AND fd4 = '000'
AND zdate = ( SELECT MIN( zdate )
FROM ztable
WHERE fd1 = lv_id
AND fd2 = lv_acc
AND fd3 = lv_cd
AND fd4 = '000' ).
-> 이 쿼리가 잘 이해가 안되서요. 아래와 같이 쓰면 틀린점이 있나요?
2. 두번째 쿼리
SELECT MIN( zdate )INTO lv_date
FROM ztable
WHERE fd1 = lv_id
AND fd2 = lv_acc
AND fd3 = lv_cd
AND fd4 = '000'
고수님의 답변 기다리겠습니다. 감사합니다. 꾸벅~
댓글 6
-
이소아밀
2011.03.18 02:29
-
you1228
2011.03.18 02:44
똑같은 결과가 나올듯한데요...두번쨰가 퍼포먼스는 더 좋을듯 합니다...아무래도 2번 테이블 읽는 서브쿼리보다는... -
ABAPCHOJJA
2011.03.18 04:02
결과는 동일하게 나오겠지만 의미상으로는 차이가 있을 것 같네요.
첫번째는 조건 범위가 4개 조건 + 최소일자 조건중에서 최소값을 찾는 것이고
두번째는 4개 조건에 해당하는 데이터중 최소일자를 찾는 것 같네요.
1 2 3 000 20110101
2 3 4 000 20110103
3 4 5 001 20110101
4 5 6 000 20110107
이라는 데이터가 있다면 첫번째는 1 라인이 조건대상이 되고 그중에서 최소일자를 선택하는 것이고
두번째는 1,2,4 라인중에서 최소일자를 찾게 되겠죠. ^^; 그냥 그런것 같네요. 수고하세요.
-
해보자
2011.03.18 08:29
동일합니다.
굳이 첫번째를 사용하는 이유를 모르겠네요.
첫번째 쿼리는 single을 뺴더라도 동일한 날짜만 여러번 출력될거에요.
-
정군
2011.03.18 20:16
PK 설정에 따라서 성능도 결과도 다를 수 있을거 같은데요...
-
기쁨
2011.03.18 23:36
fd1, fd2, fd3, fd4 => 이게 PK가 아닙니다.
아무리 봐요 제 눈에는 결과가 같게 나온다고 보이는데, 결과가 다를수도 있나요?
흠.. 저도 잘은 모르겠는데, 퍼포먼스 쪽으로 다른거 아니예요?