2026_최신기출유형_08회
-4. 사원별구매현황 쿼리 0/7
-쿼리 비교 X [사원별구매현황] 쿼리 (SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서, 사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번 WHERE (((구매.구매수량) Between [최소 수량] And [최대 수량]) AND ((부서.부서이름)<>"기획부")) GROUP BY [성명] & "(" & [부서이름] & ")" ORDER BY [성명] & "(" & [부서이름] & ")"; )이 정답(SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서 INNER JOIN (사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번) ON 부서.부서코드 = 사원.부서코드 WHERE (((구매.구매수량)>=[최소 수량] And (구매.구매수량)<=[최대 수량]) AND ((부서.부서이름)<>"기획부")) GROUP BY [성명] & "(" & [부서이름] & ")" ORDER BY [성명] & "(" & [부서이름] & ")"; )과 다릅니다.
테이블간 관계가 설정돼 있지 않은 경우 직접 설정해서 문제를 풀어야 하는지, 관계는 어떻게(없음, 일대다, 다대다, 다대일 등) 설정하는 것이 맞는지 궁금합니다.
안녕하세요.
(SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서, 사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번 WHERE (((구매.구매수량) Between [최소 수량] And [최대 수량]) AND ((부서.부서이름)<>"기획부")) GROUP BY [성명] & "(" & [부서이름] & ")" ORDER BY [성명] & "(" & [부서이름] & ")"; )
(SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서 INNER JOIN (사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번) ON 부서.부서코드 = 사원.부서코드 WHERE (((구매.구매수량)>=[최소 수량] And (구매.구매수량)<=[최대 수량]) AND ((부서.부서이름)<>"기획부")) GROUP BY [성명] & "(" & [부서이름] & ")" ORDER BY [성명] & "(" & [부서이름] & ")"; )
작성하신 SQL은
부서와 사원이 조인되지 않아,
부서 테이블이 모든 사원 데이터와 카티션 곱(Cross Join) 으로 처리됩니다.
이로 인해 부서명이 잘못 연결되거나 중복 집계될 수 있습니다.
쿼리는 테이블을 이용하므로 반드시 문제1번 작업이 완료된 후 작업을 수행해야 합니다. 문제 1의 관계 설정 작업 외에
쿼리에서 관계나 조인이 필요한 경우는 문제의 조건으로 제시됩니다.
즐거운 하루 되세요.
-
관리자2026-06-08 10:34:48
안녕하세요.
(SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서, 사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번 WHERE (((구매.구매수량) Between [최소 수량] And [최대 수량]) AND ((부서.부서이름)<>"기획부")) GROUP BY [성명] & "(" & [부서이름] & ")" ORDER BY [성명] & "(" & [부서이름] & ")"; )
(SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서 INNER JOIN (사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번) ON 부서.부서코드 = 사원.부서코드 WHERE (((구매.구매수량)>=[최소 수량] And (구매.구매수량)<=[최대 수량]) AND ((부서.부서이름)<>"기획부")) GROUP BY [성명] & "(" & [부서이름] & ")" ORDER BY [성명] & "(" & [부서이름] & ")"; )
작성하신 SQL은
부서와 사원이 조인되지 않아,
부서 테이블이 모든 사원 데이터와 카티션 곱(Cross Join) 으로 처리됩니다.
이로 인해 부서명이 잘못 연결되거나 중복 집계될 수 있습니다.
쿼리는 테이블을 이용하므로 반드시 문제1번 작업이 완료된 후 작업을 수행해야 합니다. 문제 1의 관계 설정 작업 외에
쿼리에서 관계나 조인이 필요한 경우는 문제의 조건으로 제시됩니다.
즐거운 하루 되세요.