공백을 가능한 모든 값을 갖는 것으로 처리하는 쿼리

공백을 가능한 모든 값을 갖는 것으로 처리하는 쿼리

다음과 같은 테이블이 있다고 가정합니다.

필드_1 필드_2 필드_3
이자형
에프
G
시간
필드_1 필드_2

이러한 항목을 Access의 쿼리 디자인 창으로 가져와 두 필드를 공통 이름으로 결합하면 'AC' 및 'ZB'(총 4개 레코드)인 레코드를 표시하는 쿼리를 쉽게 가져올 수 있습니다.

제가 달성하려는 작업은 다음과 같습니다. 두 번째 테이블의 두 번째 레코드에서 Field_2가 Null/Blank라고 가정합니다. 이 Null 필드를 다음과 같이 해석하는 방법을 찾고 싶습니다.모두가능한 값(다른 조인 고려) 지금 당장 해당 필드의 값을 삭제하고 동일한 쿼리를 실행하면 분명히 'A' 레코드만 표시됩니다. 예상대로 어느 방향으로든 외부 조인을 해도 내가 원하는 결과를 얻을 수 없습니다.

또 다른 생각은 'and'와 'or' 논리를 사용하는 필터처럼 작동하기를 바라는 것입니다. Access에서 이것이 가능하거나 쉬운가요? Excel에서 고급 필터를 사용하여 이 작업을 수행하는 것이 더 나을까요?

이 예는 분명히 단순화되었습니다. 제가 속한 업계에서는 훨씬 더 복잡할 수 있습니다. 고급 필터는 이와 같이 작은 경우에는 잘 작동하지만 "불완전한 데이터" 테이블(여기서는 Table_2로 표시됨)은 수만 개의 레코드일 수 있으며 이를 확장하는 데 사용해야 하는 "완전한" 데이터 세트는 수백 개입니다. 수천 개의 레코드(적어도 모든 중요한 데이터를 표 형식으로 입력하는 쿼리를 가져오려면).

여기 누군가가 이전에 이 문제를 겪었고 준비된 해결책이 있다면 기쁠 것입니다. 모든 도움에 감사드립니다.

답변1

아마도 다음과 같이 조인을 편집해야 합니다.

SELECT Table1.*
FROM Table1 
INNER JOIN Table2 
ON Table2.Field_1 = Table1.Field_1
AND Table2.Field_2 = Table1.Field_2

다음과 같이 :

SELECT Table1.*
FROM Table1 
INNER JOIN Table2 
ON Table2.Field_1 = Table1.Field_1
AND IIF(Table2.Field_2 IS NULL,Table1.Field_2,Table2.Field_2) = Table1.Field_2

이것이 정확하지 않다면 용서해주세요. 내 생각에는 Access에서는 사용할 수 없으며 대신 COALESCE사용해야 한다고 생각합니다 IIF. 불행히도 저는 수년 동안 Access를 사용하지 않았습니다.

어쨌든 원칙은 "테이블 2의 필드 2가 null이면 그 자리에 테이블 1의 필드 2를 사용하십시오"라고 조인을 편집해야 한다는 것입니다. 이는 Table1의 모든 행을 일치시키는 효과가 있습니다.

관련 정보