여러 테이블을 기준으로 쿼리 만들기

때때로 Access에서 쿼리를 작성하고 사용하는 프로세스는 테이블에서 필드를 선택하고 아마도 어떤 조건을 적용한 다음 결과를 보는 것처럼 간단한 일입니다. 그러나 필요한 데이터가 둘 이상의 테이블에 분산되어 있다면 어떨까요? 다행히 여러 소스의 정보를 결합하는 쿼리를 작성할 수 있습니다. 이 항목에서는 둘 이상의 테이블에서 데이터를 가져오는 시나리오를 살펴보고 이를 수행하는 방법을 설명합니다.

실행할 작업

관련 테이블의 데이터를 사용하여 쿼리의 정보 향상

세 번째 테이블과의 관계를 사용하여 두 테이블의 데이터 연결

유사한 두 테이블의 모든 레코드 보기

관련 테이블의 데이터를 사용하여 쿼리의 정보 향상

한 테이블을 기반으로 하는 쿼리는 필요한 정보를 제공하지만 데이터를 다른 테이블에서 가져오면 쿼리 결과를 더 명확하고 유용하게 만들 수 있습니다. 예를 들어 직원 ID 목록이 쿼리 결과에 표시된다고 가정해 봅니다. 결과에 직원 이름이 표시되는 것이 더 유용할 것 같은데, 직원 이름은 다른 테이블에 있습니다. 쿼리 결과에 표시할 직원 이름을 가져오려면 쿼리에 두 테이블이 모두 포함되어야 합니다.

쿼리 마법사를 사용하여 기본 테이블 및 관련 테이블의 쿼리 작성

  1. 테이블에 관계 창에 정의된 관계이(가) 있는지 확인합니다.

    방법

    1. 데이터베이스 도구 탭의 표시/숨기기 그룹에서 관계를 클릭합니다.

    2. 디자인 탭의 관계 그룹에서 모든 관계를 클릭합니다.

    3. 정의된 관계가 있어야 하는 테이블을 확인합니다.

      • 테이블이 관계 창에 표시되는 경우 관계가 이미 정의되어 있는지 확인합니다.

        관계는 공용 필드에서 두 테이블을 연결하는 선으로 나타납니다. 관계 선을 두 번 클릭하여 관계로 연결된 테이블의 필드를 확인할 수 있습니다.

      • 관계 창에 테이블이 표시되지 않으면 추가해야 합니다.

        디자인 탭의 표시/숨기기 그룹에서 테이블 이름을 클릭합니다.

        표시하려는 각 테이블을 두 번 클릭한 다음 닫기를 클릭합니다.

    4. 두 테이블 간의 관계를 찾을 수 없는 경우 한 테이블의 필드를 다른 테이블의 필드로 끌어서 관계를 만듭니다. 테이블 간의 관계를 만드는 필드에는 동일한 데이터 형식이 있어야 합니다.

      참고: 해당 필드에 정수(Long) 필드 크기가 있는 경우 일련 번호 데이터 형식의 필드와 숫자 데이터 형식의 필드 사이에 관계를 만들 수 있습니다. 대부분은 일대다 관계을(를) 만드는 경우입니다.

      관계 편집 대화 상자가 나타납니다.

    5. 만들기를 클릭하여 관계를 만듭니다.

      관계를 만들 때 옵션에 대한 자세한 내용은 관계 만들기, 편집 또는 삭제 문서를 참조하세요.

    6. 관계 창을 닫습니다.

  2. 만들기 탭의 쿼리 그룹에서 쿼리 마법사를 클릭합니다. Access 2007을 사용 중이면 만들기 탭의 기타 그룹에서 쿼리 마법사를 클릭합니다.

  3. 새 쿼리 대화 상자에서 단순 쿼리 마법사를 클릭하고 확인을 클릭합니다.

  4. 테이블/쿼리 콤보 상자에서 쿼리에 포함할 기본 정보가 포함된 테이블을 클릭합니다.

  5. 사용 가능한 필드 목록에서 쿼리에 포함할 첫 번째 필드를 클릭한 다음 단일 오른쪽 화살표 단추를 클릭하여 해당 필드를 선택한 필드 목록으로 이동합니다. 쿼리에 포함할 테이블의 각 추가 필드에 대해서도 동일한 작업을 수행합니다. 쿼리 출력에 반환할 필드이거나 조건을 적용하여 출력의 행을 제한하기 위해 사용하려는 필드일 수 있습니다.

  6. 테이블/쿼리 콤보 상자에서 쿼리 결과를 향상하는 데 사용할 관련 데이터가 포함된 테이블을 클릭합니다.

  7. 쿼리 결과를 향상하는 데 사용할 필드를 선택한 필드 목록에 추가하고 다음을 클릭합니다.

  8. 상세 쿼리나 요약 쿼리를 선택하십시오.에서 Detail(상세) 또는 요약을 클릭합니다.

    쿼리가 집계 함수(Sum, Avg, Min, Max, Count, StDev, Var)를 수행하지 않도록 하려면 상세 쿼리를 선택합니다. 쿼리가 집계 함수를 수행하도록 하려면 요약 쿼리를 선택합니다. 선택한 후 다음을 클릭합니다.

  9. 마침을 클릭하여 결과를 확인합니다.

Northwind 예제 데이터베이스를 사용하는 예

다음 예에서는 쿼리 마법사를 사용하여 주문 목록, 각 주문에 대한 운송 요금, 각 주문을 처리한 직원 이름을 표시하는 쿼리를 작성합니다.

참고: 이 예에는 Northwind 예제 데이터베이스를 수정하는 작업이 포함됩니다. Northwind 예제 데이터베이스의 백업 복사본을 만들고 해당 백업 복사본을 사용하여 이 예를 수행할 수 있습니다.

쿼리 마법사를 사용하여 쿼리 작성

  1. Northwind 예제 데이터베이스를 엽니다. 로그인 양식을 닫습니다.

  2. 만들기 탭의 쿼리 그룹에서 쿼리 마법사를 클릭합니다. Access 2007을 사용 중이면 만들기 탭의 기타 그룹에서 쿼리 마법사를 클릭합니다.

  3. 새 쿼리 대화 상자에서 단순 쿼리 마법사를 클릭하고 확인을 클릭합니다.

  4. 테이블/쿼리 콤보 상자에서 테이블: 주문을 클릭합니다.

  5. 사용 가능한 필드 목록에서 주문 ID를 두 번 클릭하여 해당 필드를 선택한 필드 목록으로 이동합니다. 운송 비용을 두 번 클릭하여 해당 필드를 선택한 필드 목록으로 이동합니다.

  6. 테이블/쿼리 콤보 상자에서 테이블: 직원을 클릭합니다.

  7. 사용 가능한 필드 목록에서 이름을 두 번 클릭하여 해당 필드를 선택한 필드 목록으로 이동합니다. 을 두 번 클릭하여 해당 필드를 선택한 필드 목록으로 이동합니다. 다음을 클릭합니다.

  8. 모든 주문 목록을 작성하므로 상세 쿼리를 사용할 수 있습니다. 직원별로 운송 비용을 요약하거나 기타 집계 함수를 수행하는 경우 요약 쿼리를 사용합니다. 상세(각 레코드의 필드마다 표시)를 클릭한 후 다음을 클릭합니다.

  9. 마침을 클릭하여 결과를 확인합니다.

쿼리에서 주문 목록, 각 운송 요금, 주문을 처리한 직원의 이름과 성을 반환합니다.

페이지 위쪽

세 번째 테이블과의 관계를 사용하여 두 테이블의 데이터 연결

종종 두 테이블의 데이터는 세 번째 테이블을 통해 서로 관련됩니다. 이는 일반적으로 처음 두 테이블의 데이터가 다대다 관계에서 관련되어 있기 때문입니다. 종종 두 테이블 간의 다대다 관계를 3개의 테이블을 포함하는 두 개의 일대다 관계로 분할하는 것이 좋은 데이터베이스 디자인 방법입니다. 각각의 다른 테이블에 대해 기본 키 및 외래 키을(를) 사용하는 세 번째 테이블(접합 테이블 또는 관계 테이블)을 만들어 이를 수행합니다. 그런 다음 접합 테이블의 각 외부 키와 다른 테이블 중 하나의 해당 기본 키 사이에 일대다 관계가 생성됩니다. 이러한 경우, 두 개의 테이블에서만 데이터를 검색하려는 경우에도 쿼리에 세 개의 테이블을 모두 포함해야 합니다.

다대다 관계가 있는 테이블을 사용하여 선택 쿼리 작성

  1. 만들기 탭의 쿼리 그룹에서 쿼리 디자인을 클릭합니다. Access 2007을 사용하는 경우 만들기 탭의 기타 그룹에서 쿼리 디자인을 클릭합니다.

    테이블 표시 대화 상자가 열립니다.

  2. 테이블 표시 대화 상자에서 쿼리에 포함할 데이터가 있는 두 테이블을 두 번 클릭하고 이를 연결하는 접합 테이블도 두 번 클릭한 다음 닫기를 클릭합니다.

    세 테이블 모두 쿼리 디자인 작업 영역에 해당 필드에 결합되어 표시됩니다.

  3. 쿼리 결과에 사용할 각 필드를 두 번 클릭합니다. 각 필드는 디자인 눈금 쿼리에 나타납니다.

  4. 쿼리 디자인 눈금에서 조건 행을 사용하여 필드 조건을 입력합니다. 쿼리 결과에 필드를 표시하지 않고 필드 조건을 사용하려면 해당 필드의 행 표시에서 확인란을 선택 취소합니다.

  5. 필드의 값을 기준으로 결과를 정렬하려면 쿼리 디자인 눈금에서 해당 필드의 정렬 행에서 레코드를 정렬하려는 방법에 따라 오름차순 또는 내림차순을 클릭합니다.

  6. 디자인 탭의 결과 그룹에서 실행을 클릭합니다.

    Access는 데이터시트 보기에 쿼리 출력을 표시합니다.

Northwind 예제 데이터베이스를 사용하는 예

참고: 이 예에는 Northwind 예제 데이터베이스를 수정하는 작업이 포함됩니다. Northwind 예제 데이터베이스의 백업 복사본을 만들고 해당 백업 복사본을 사용하여 이 예를 수행할 수 있습니다.

리우데자네이루에 있는 공급업체에서 사용자의 웹 사이트를 발견하고 거래하고 싶어 한다고 가정해 봅니다. 그러나 이 공급업체는 리우데자네이루와 상파울루 근처에서만 영업을 합니다. 이 공급업체는 사용자가 중개하는 모든 범주의 식품을 공급합니다. 이 공급업체는 꽤 규모가 큰 사업체이며 사용자가 매년 R$20,000.00(약 $9,300.00) 이상의 가치가 있는 잠재적인 매출을 제공할 수 있기를 원합니다. 이 공급업체가 요구하는 시장을 제공할 수 있나요?

이 질문에 답변하기 위해 필요한 데이터는 고객 테이블과 주문 세부 정보 테이블 두 곳에서 찾을 수 있습니다. 이러한 테이블은 주문 테이블로 서로 연결되어 있습니다. 테이블 간 관계는 이미 정의되어 있습니다. 주문 테이블에서 각 주문은 고객 ID 필드의 고객 테이블과 관련이 있는 고객을 한 명만 가질 수 있습니다. 주문 세부 정보 테이블의 각 레코드는 주문 ID 필드의 주문 테이블에 한 주문과만 관련됩니다. 따라서 고객은 여러 주문을 가질 수 있으며, 각각에는 여러 주문 세부 정보가 있습니다.

이 예에서는 리우데자네이루와 상파울루에서 매년 총매출을 표시하는 크로스탭 쿼리를 작성합니다.

디자인 보기에서 쿼리 작성

  1. Northwind 데이터베이스를 엽니다. 로그인 양식을 닫습니다.

  2. 만들기 탭의 쿼리 그룹에서 쿼리 디자인을 클릭합니다. Access 2007을 사용하는 경우 만들기 탭의 기타 그룹에서 쿼리 디자인을 클릭합니다.

    테이블 표시 대화 상자가 열립니다.

  3. 테이블 표시 대화 상자에서 고객, , 주문 세부 정보를 두 번 클릭하고 닫기를 클릭합니다.

    세 테이블 모두 쿼리 디자인 작업 영역에 표시됩니다.

  4. 고객 테이블에서 도시 필드를 두 번 클릭하여 쿼리 디자인 눈금에 추가합니다.

  5. 쿼리 디자인 눈금의 도시 열, 조건 행에 위치(“리우데자네이루”, “상파울루”)를 입력합니다. 그러면 이러한 두 도시 중에서 고객이 있는 곳의 레코드만 쿼리에 포함됩니다.

  6. 주문 세부 정보 테이블에서 운송 날짜 및 단가 필드를 두 번 클릭합니다.

    필드가 쿼리 디자인 눈금에 추가됩니다.

  7. 쿼리 디자인 눈금의 운송 날짜 열에서 필드 행을 선택합니다. [운송 날짜]연도: 형식([운송 날짜],“yyyy”)으로 바꿉니다. 그러면 운송 날짜 필드의 연도 부분 값을 사용할 수 있는 필드 별칭 연도가 생깁니다.

  8. 쿼리 디자인 눈금의 단가 열에서 필드 행을 선택합니다. [단가]매출: [주문 세부 정보].[단가]*[수량]-[주문 세부 정보].[단가]*[수량]*[할인]으로 바꿉니다. 그러면 각 레코드의 매출을 계산하는 필드 별칭 매출이 생깁니다.

  9. 디자인 탭의 쿼리 유형 그룹에서 크로스탭을 클릭합니다.

    쿼리 디자인 눈금에 새로운 두 행 총계크로스탭이 나타납니다.

  10. 쿼리 디자인 눈금의 도시 열에서 크로스탭 행을 클릭하고 행 머리글을 클릭합니다.

    그러면 도시 값이 행 머리글로 표시됩니다. 즉 쿼리는 각 도시에 대해 행 하나를 반환합니다.

  11. 연도 열에서 크로스탭 행을 클릭하고 열 머리글을 클릭합니다.

    그러면 연도 값이 열 머리글로 표시됩니다. 즉 쿼리는 각 도시에 대해 열 하나를 반환합니다.

  12. 매출 열에서 크로스탭 행을 클릭한 다음 을 클릭합니다.

    그러면 행과 열의 교차 지점에 매출 값이 표시됩니다. 즉 쿼리는 도시와 연도의 각 조합에 대해 매출값 하나를 반환합니다.

  13. 매출 열에서 총계 행을 클릭한 다음 합계를 클릭합니다.

    그러면 쿼리는 이 열의 값을 합계합니다.

    다른 두 열에 대한 값을 집계 값이 아니라 각 값으로 보고 싶으면 이러한 열에 대한 총계 행을 기본값인 Group By(그룹화)로 둘 수 있습니다.

  14. 디자인 탭의 결과 그룹에서 실행을 클릭합니다.

이제 리우데자네이루와 상파울로의 연도별 총 매출을 반환하는 쿼리가 있습니다.

페이지 위쪽

유사한 두 테이블의 모든 레코드 보기

때때로 구조상 동일한 두 테이블의 데이터를 결합하려는데 한 테이블이 다른 데이터베이스에 있는 경우가 있습니다. 다음 시나리오를 살펴보겠습니다.

사용자가 학생 데이터를 작업하는 분석가라고 가정해 보겠습니다. 사용자의 학교와 다른 학교 간 데이터 공유 이니셔티브를 시작하려고 합니다. 그러면 두 학교 모두 커리큘럼을 개선할 수 있습니다. 각 학교의 레코드를 따로 보는 것보다 두 학교의 모든 레코드를 함께 살펴볼 수 있으면 더 좋을 것 같습니다.

다른 학교의 데이터를 데이터베이스의 새 테이블로 가져올 수 있지만 다른 학교 데이터에 대한 변경은 사용자의 데이터베이스에 반영되지 않습니다. 다른 학교의 테이블에 연결한 다음 실행할 때 데이터를 결합하는 쿼리를 만드는 방법이 더 나을 수 있습니다. 두 가지 분석을 수행하고 하나인 것처럼 해석하지 않고, 데이터를 단일 집합으로 분석할 수 있습니다.

동일한 구조의 두 테이블의 레코드를 모두 보려면 통합 쿼리을(를) 사용합니다.

통합 쿼리는 디자인 보기에 표시할 수 없습니다. SQL 보기 개체 탭에 입력하는 SQL 명령을 사용하여 통합 쿼리를 작성합니다.

두 테이블을 사용하여 통합 쿼리 만들기

  1. 만들기 탭의 쿼리 그룹에서 쿼리 디자인을 클릭합니다. Access 2007을 사용하는 경우 만들기 탭의 기타 그룹에서 쿼리 디자인을 클릭합니다.

    새 쿼리 디자이너가 열리고 테이블 표시 대화 상자가 나타납니다.

  2. 테이블 표시 대화 상자에서 닫기를 클릭합니다.

  3. 디자인 탭의 쿼리 유형 그룹에서 통합을 클릭합니다.

    쿼리는 디자인 보기에서 SQL 보기로 전환합니다. 이때 SQL 보기 개체 탭이 비어 있습니다.

  4. SQL 보기에서 쿼리에서 원하는 첫 번째 테이블의 필드 목록 앞에 SELECT를 입력합니다. 필드 이름은 대괄호로 묶고 쉼표로 구분해야 합니다. 필드 이름을 다 입력했으면 Enter 키를 누릅니다. 커서가 SQL 보기에서 한 줄 아래로 이동합니다.

  5. 쿼리에서 원하는 첫 번째 테이블의 이름 앞에 FROM을 입력합니다. Enter 키를 누릅니다.

  6. 첫 번째 테이블의 필드에 대한 조건을 지정하려면 필드 이름, 비교 연산자(일반적으로 등호(=)), 조건 앞에 WHERE를 입력합니다. AND 키워드와 첫 번째 조건에 사용한 것과 동일한 구문을 사용하여 WHERE 절 끝에 추가 조건을 추가할 수 있습니다(예: WHERE [ClassLevel]=“100” AND [CreditHours]>2). 조건을 다 지정했으면 Enter 키를 누릅니다.

  7. UNION을 입력하고 Enter 키를 누릅니다.

  8. 쿼리에서 원하는 두 번째 테이블의 필드 목록 앞에 SELECT를 입력합니다. 첫 번째 테이블에서 포함한 것과 동일한 필드를 이 테이블에서 동일한 순서로 포함해야 합니다. 필드 이름은 대괄호로 묶고 쉼표로 구분해야 합니다. 필드 이름을 다 입력했으면 Enter 키를 누릅니다.

  9. 쿼리에서 포함하려는 두 번째 테이블의 이름 앞에 FROM을 입력합니다. Enter 키를 누릅니다.

  10. 원하는 경우 이 절차의 6단계에서 설명한 대로 WHERE 절을 추가합니다.

  11. 세미콜론(;)을 입력하여 쿼리의 끝을 나타냅니다.

  12. 디자인 탭의 결과 그룹에서 실행을 클릭합니다.

    결과는 데이터시트 보기에 나타납니다.

페이지 위쪽

참고 항목

테이블 및 쿼리 조인

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×