Sybase 12.5를 사용하고 있습니다.
select count(1) from aaa where 2 between "20070401" and "20070930"
--> 94건 발생
select count(1) from aaa where 2 between "20070401" and "20070930"
and not exists(select 1 from b b where 1 = b.1 and 2 = b.2 and 3 = b.3 )
--> 0건 발생
select count(1) from aaa where 2 between "20070401" and "20070930"
and exists(select 1 from bbb b where b.1 = 1 and b.2 = 2 and b.3 = 3 )
--> 94건 발생
select count(1) from aaa a where a.2between "20070401" and "20070930"
and not exists(select 1 from bbb b where a.1= b.1 and a.2= b.2 and a.3 = b.3)
--> 83건 발생
이런 쿼리가 있습니다. 보시면 아시지만 aaa a를 해서 not exists에서 넣어서 사용하면 제대로 건수를 먹습니다.
하지만 aaa 로 alias를 안주고 쿼리를 날려보면 건수를 못가져 오고 exists로 바꾸면 모든 건수를 가져오고 있습니다.
두개의 쿼리가 다른건가요??
내부적으로 어떻게 돌아가길래 이런 건수의 오류(?)가 나오는걸까요??
또 제가 원하는건 저 83건을 삭제하고 싶은겁니다. 94건이 아니고요..
그래서 이렇게 쿼리를 날리면
delete aaa a where a.2between "20070401" and "20070930"
and not exists(select 1 from bbb b where a.1= b.1 and a.2= b.2 and a.3 = b.3)
Server Message: Number 102, Severity 15
Server 'ccocs', Line 1:
Incorrect syntax near 'a'.
이런 에러가 발생하네요...^^;; 고수분들의 고견좀 부탁드립니다...
수고하세요...
|