안녕하세요.
키필드가 여러개가 있는 경우 MINUS 구문은 아래 2가지 방법중 하나를
선택해서 하면 될 것 같군요.
첫번째 : 키필드들의 필드유형이 모두 같은 경우
SELECT * FROM "tablea.DB" A
WHERE NOT
(A.Key01+A.Key02 IN (SELECT DISTINCT B.key01+B.key02 FROM "Tableb.DB" B))
만약 Key01필드가 문자형이고 Key02필드는 숫자형이면 Type Mismatch에러가
나더군요. 형변환을 할 수 있으면(DATE형은 문자열로 바꿀수 있음) 변환해서
처리하면 될 것 같습니다.
두번째 : 키필드들의 필드유형이 다른 경우(같은 경우에도...)
SELECT * FROM "tablea.DB" A
WHERE NOT
(
(A.Key01 IN (SELECT DISTINCT B.key01 FROM "Tableb.DB" B)) and
(A.Key02 IN (SELECT DISTINCT B.key02 FROM "Tableb.DB" B))
)
두번째 방법은 좀 무식해 보이는 방법인데, 필드유형에 관계없이 잘 동작하더군요.
속도는 좀 걸릴 것 같네요...
그럼 좋은 하루 되세요.
|