2026_최신기출유형_08회
-4. 사원별구매현황 쿼리 0/7
-쿼리 비교 X [사원별구매현황] 쿼리 (SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서 INNER JOIN (사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번) ON 부서.부서코드 = 사원.부서코드 GROUP BY [성명] & "(" & [부서이름] & ")", 구매.구매수량, 부서.부서이름 HAVING (((구매.구매수량)>=[최소 수량] And (구매.구매수량)<=[최대 수량]) AND ((부서.부서이름)<>"기획부")) ORDER BY [성명] & "(" & [부서이름] & ")"; )이 정답(SELECT [성명] & "(" & [부서이름] & ")" AS 구매자, Sum(구매.구매금액) AS 총구매금액 FROM 부서 INNER JOIN (사원 INNER JOIN 구매 ON 사원.사번 = 구매.사번) ON 부서.부서코드 = 사원.부서코드 WHERE (((구매.구매수량)>=[최소 수량] And (구매.구매수량)<=[최대 수량]) AND ((부서.부서이름)<>"기획부")) GROUP BY [성명] & "(" & [부서이름] & ")" ORDER BY [성명] & "(" & [부서이름] & ")"; )과 다릅니다.
최종 결과가 첨부한 캡쳐화면처럼 구매금액의 합계가 적용이 안되고 따로따로 나오는데 이건 어떻게 해결할수 있나요? 쿼리디자인에서는 분명히 합계로 설정해 놓았습니다.
안녕하세요.
원인은 구매수량과 부서이름을 ‘묶는 방법’으로 둔 상태에서 조건을 걸었기 때문입니다.
현재 SQL에는
GROUP BY 구매.구매수량, 부서.부서이름
HAVING ...
이 들어가 있습니다.
이렇게 되면 같은 사원이라도 구매수량이 다른 레코드끼리는 서로 다른 그룹으로 나뉘기 때문에 구매금액 합계가 따로따로 표시됩니다.
해결 방법은 쿼리 디자인에서 다음 두 필드의 요약을 ‘조건’으로 변경하는 것입니다.
구매수량→ 요약: 조건부서이름→ 요약: 조건
그러면 SQL이
WHERE ...
GROUP BY 구매자
형태로 바뀌고, 먼저 조건에 맞는 레코드만 걸러낸 뒤 사원별로 구매금액을 합계하게 됩니다.
즉, 이번 문제의 핵심은:
조건에만 사용하는 필드는 ‘묶는 방법’이 아니라 ‘조건’으로 설정해야 합니다.
그래야 최종 결과가 사원별 1행으로 합산됩니다.
즐거운 하루 되세요.
-
관리자2026-08-07 14:48:30
안녕하세요.
원인은 구매수량과 부서이름을 ‘묶는 방법’으로 둔 상태에서 조건을 걸었기 때문입니다.
현재 SQL에는
GROUP BY 구매.구매수량, 부서.부서이름 HAVING ...이 들어가 있습니다.
이렇게 되면 같은 사원이라도 구매수량이 다른 레코드끼리는 서로 다른 그룹으로 나뉘기 때문에
구매금액합계가 따로따로 표시됩니다.해결 방법은 쿼리 디자인에서 다음 두 필드의 요약을 ‘조건’으로 변경하는 것입니다.
구매수량→ 요약: 조건부서이름→ 요약: 조건
그러면 SQL이
WHERE ... GROUP BY 구매자형태로 바뀌고, 먼저 조건에 맞는 레코드만 걸러낸 뒤 사원별로 구매금액을 합계하게 됩니다.
즉, 이번 문제의 핵심은:
조건에만 사용하는 필드는 ‘묶는 방법’이 아니라 ‘조건’으로 설정해야 합니다.
그래야 최종 결과가 사원별 1행으로 합산됩니다.
즐거운 하루 되세요.