그 관계 설정을 하는데 
이렇게 뜹니다. 뭐가 문제일까요
그리고 목적지-등급별결재금액 쿼리 다 맞게 나오는데 값 부분이 숫자가 다 다릅니다. 똑같이 했는데 왜 그럴까요
안녕하세요.
첫 번째 관계 설정 오류는 화면의 메시지대로 참조 무결성을 설정할 수 없는 기존 데이터가 있기 때문입니다.
현재 고객코드끼리 관계를 설정하면서 [항상 참조 무결성 유지]를 선택했는데, 관계의 하위 테이블에 있는 고객코드 중 일부가 기본 테이블에는 존재하지 않는 상태로 보입니다.
예를 들어 기본 테이블의 고객코드가
A001
A002
A003뿐인데, 하위 테이블에
A001
A002
A999가 있다면 A999에 대응하는 고객이 기본 테이블에 없기 때문에 참조 무결성을 설정할 수 없습니다.
따라서 두 테이블의 고객코드 데이터를 확인하여 하위 테이블에만 존재하는 고객코드가 있는지 확인해야 합니다. 또한 두 필드의 데이터 형식도 서로 같아야 합니다. 예를 들어 한쪽이 짧은 텍스트이고 다른 쪽이 숫자라면 정상적인 관계를 설정할 수 없습니다.
연습 과정에서 원본 테이블의 데이터를 수정하거나 삭제한 적이 있다면 원본 문제 파일을 다시 받아 작업하는 것이 가장 확실합니다. 관계 설정 자체를 틀리게 한 것이 아니라 이미 들어 있는 데이터가 참조 무결성 조건에 맞지 않아 발생하는 오류일 가능성이 높습니다.
두 번째로 <목적지-등급별결재금액> 쿼리에서 필드 구성이나 식은 맞는데 숫자만 모두 다르다면, 우선 원본 테이블의 데이터가 변경되었는지 확인하세요.
특히 Access에서는 업데이트·삭제·추가 쿼리를 실행하면 실제 테이블 데이터가 바뀝니다. 앞선 문제에서 실행 쿼리를 잘못 실행했다가 수정하더라도 이미 변경된 원본 데이터가 자동으로 복구되지는 않습니다. 이런 상태에서는 쿼리를 정답과 똑같이 작성해도 집계 금액은 정답 파일과 다르게 나옵니다.
또 하나 확인할 것은 조인입니다. 집계 쿼리에서 테이블을 불필요하게 하나 더 연결하거나 잘못된 필드끼리 조인하면 같은 레코드가 여러 번 연결되어 Sum, Avg 등의 값이 달라질 수 있습니다.
따라서 이번 경우에는 다음 순서로 확인하는 것이 좋습니다.
- 관계에 사용하는 두
고객코드필드의 데이터 형식이 같은지 확인합니다. - 하위 테이블의 모든 고객코드가 기본 테이블에도 존재하는지 확인합니다.
<목적지-등급별결재금액>쿼리가 사용하는 원본 테이블의 데이터가 교재 원본과 달라지지 않았는지 확인합니다.- 쿼리 디자인에서 정답에 없는 테이블이나 조인이 추가되어 있지 않은지 확인합니다.
특히 관계 설정도 안 되고 쿼리의 숫자도 전부 다르다면 원본 테이블 데이터가 연습 과정에서 변경되었을 가능성을 우선 확인해 보세요. 원본 파일을 새로 열어 동일하게 작업했을 때 정상적으로 나온다면 현재 작업 파일의 데이터가 변경된 것이 원인입니다.
즐거운 하루 되세요.
-
관리자2026-09-18 09:40:27
안녕하세요.
첫 번째 관계 설정 오류는 화면의 메시지대로 참조 무결성을 설정할 수 없는 기존 데이터가 있기 때문입니다.
현재
고객코드끼리 관계를 설정하면서 [항상 참조 무결성 유지]를 선택했는데, 관계의 하위 테이블에 있는고객코드중 일부가 기본 테이블에는 존재하지 않는 상태로 보입니다.예를 들어 기본 테이블의 고객코드가
A001 A002 A003뿐인데, 하위 테이블에
A001 A002 A999가 있다면
A999에 대응하는 고객이 기본 테이블에 없기 때문에 참조 무결성을 설정할 수 없습니다.따라서 두 테이블의
고객코드데이터를 확인하여 하위 테이블에만 존재하는 고객코드가 있는지 확인해야 합니다. 또한 두 필드의 데이터 형식도 서로 같아야 합니다. 예를 들어 한쪽이 짧은 텍스트이고 다른 쪽이 숫자라면 정상적인 관계를 설정할 수 없습니다.연습 과정에서 원본 테이블의 데이터를 수정하거나 삭제한 적이 있다면 원본 문제 파일을 다시 받아 작업하는 것이 가장 확실합니다. 관계 설정 자체를 틀리게 한 것이 아니라 이미 들어 있는 데이터가 참조 무결성 조건에 맞지 않아 발생하는 오류일 가능성이 높습니다.
두 번째로
<목적지-등급별결재금액>쿼리에서 필드 구성이나 식은 맞는데 숫자만 모두 다르다면, 우선 원본 테이블의 데이터가 변경되었는지 확인하세요.특히 Access에서는 업데이트·삭제·추가 쿼리를 실행하면 실제 테이블 데이터가 바뀝니다. 앞선 문제에서 실행 쿼리를 잘못 실행했다가 수정하더라도 이미 변경된 원본 데이터가 자동으로 복구되지는 않습니다. 이런 상태에서는 쿼리를 정답과 똑같이 작성해도 집계 금액은 정답 파일과 다르게 나옵니다.
또 하나 확인할 것은 조인입니다. 집계 쿼리에서 테이블을 불필요하게 하나 더 연결하거나 잘못된 필드끼리 조인하면 같은 레코드가 여러 번 연결되어
Sum,Avg등의 값이 달라질 수 있습니다.따라서 이번 경우에는 다음 순서로 확인하는 것이 좋습니다.
- 관계에 사용하는 두
고객코드필드의 데이터 형식이 같은지 확인합니다. - 하위 테이블의 모든 고객코드가 기본 테이블에도 존재하는지 확인합니다.
<목적지-등급별결재금액>쿼리가 사용하는 원본 테이블의 데이터가 교재 원본과 달라지지 않았는지 확인합니다.- 쿼리 디자인에서 정답에 없는 테이블이나 조인이 추가되어 있지 않은지 확인합니다.
특히 관계 설정도 안 되고 쿼리의 숫자도 전부 다르다면 원본 테이블 데이터가 연습 과정에서 변경되었을 가능성을 우선 확인해 보세요. 원본 파일을 새로 열어 동일하게 작업했을 때 정상적으로 나온다면 현재 작업 파일의 데이터가 변경된 것이 원인입니다.
즐거운 하루 되세요.
- 관계에 사용하는 두