2014-07-18 2 views
0

추가 한정자를 사용하여 WHERE 문에 하위 쿼리를 포함 할 수 있습니까? 예를 들어 두 개의 다른 컴퓨터에 두 개의 테이블이 있습니다. 테이블을 비교하고 어느 항목이 하나의 시스템에만 존재하는지보고 싶지만 특정 유형의 항목 만 봅니다. 두 종류의 항목 만 동기화합니다. 이 쿼리를 실행할 수 있으며 작동합니다 :추가 세부 사항이있는 SQL 하위 쿼리?

select 
ItemCode as style, 
ISNULL(U_certno,'') as U_certno, 
U_he, ISNULL(U_mold,'N') as U_mold 
from ITEMS Z 
where 
z.itemcode <> (SELECT distinct Q.style 
FROM remote.system.table Q where Q.style = Z.ItemCode) 

나는 많은 것 같아요. z.itemcode = <>을 z.itemcode =로 변경하면 0 결과 (현재 동기화 됨)와 모든 레코드 사이를 전환합니다. 그러나, 나는 추가 :

and (z.U_he like 'y' or z.U_mold like 'y') 

관계없이 서브 쿼리의 나에게 그 두 가지 기준을 가지고있는 항목 테이블의 모든 항목을 제공합니다. 나는 괄호 안의 모든 매너를 시도했지만 아무 소용이 없다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 나는 짝이 맞지 않는 아이템을 원하기 때문에 조인에 신경 쓰지 않았다. 어떤 도움을 주시면 감사하겠습니다. 이것은 MSSQL 2008 R2입니다.

+0

사용중인 최종 쿼리를 추가 할 수 있습니까? 또한'와일드 카드없이'LIKE'을 사용하는 것은 무엇입니까? 그것은'='와 상당히 같습니다. – Lamak

+0

최종 쿼리가 없습니다. 내가 가진 것은 위에있는 것입니다. 또한, LIKE를 사용하는 것은 나쁜 버릇입니다. ㅎ, 진짜 이유가 없습니다. – user3059028

+0

그런 다음'및 (z.U_he 'y'또는 'y'같은 z.U_mold)'를 추가 할 때 발생하는 쿼리를 게시하십시오. 그 조건을 어디에 추가하는지 이해하지 못합니다. – Lamak

답변

1
select 
ItemCode as style, 
ISNULL(U_certno,'') as U_certno, 
U_he, ISNULL(U_mold,'N') as U_mold 
from ITEMS Z 
where not exists (
    select 1 
    from remote.system.table Q 
    where Q.style = Z.ItemCode 
) 
    and 'y' IN (z.U_he, z.U_mold) 
+0

+1. . . 너는 나를 때렸다. –

+0

굉장합니다. 너는 나의 영웅이야. – user3059028