책 내용 질문하기
온라인 채점 결과 문의
도서
2026 시나공 컴퓨터활용능력 1급 실기 기출문제집
페이지
0,385
조회수
65
작성일
2026-08-05
작성자
정*정

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 [성명] & "(" & [부서이름] & ")"; )과 다릅니다.


최종 결과가 첨부한 캡쳐화면처럼 구매금액의 합계가 적용이 안되고 따로따로 나오는데 이건 어떻게 해결할수 있나요? 쿼리디자인에서는 분명히 합계로 설정해 놓았습니다.

답변
2026-08-07 14:48:30

안녕하세요.

원인은 구매수량과 부서이름을 ‘묶는 방법’으로 둔 상태에서 조건을 걸었기 때문입니다.

현재 SQL에는

GROUP BY 구매.구매수량, 부서.부서이름
HAVING ...

이 들어가 있습니다.

이렇게 되면 같은 사원이라도 구매수량이 다른 레코드끼리는 서로 다른 그룹으로 나뉘기 때문에 구매금액 합계가 따로따로 표시됩니다.

해결 방법은 쿼리 디자인에서 다음 두 필드의 요약을 ‘조건’으로 변경하는 것입니다.

  • 구매수량 → 요약: 조건

  • 부서이름 → 요약: 조건

그러면 SQL이

WHERE ...
GROUP BY 구매자

형태로 바뀌고, 먼저 조건에 맞는 레코드만 걸러낸 뒤 사원별로 구매금액을 합계하게 됩니다.

즉, 이번 문제의 핵심은:

조건에만 사용하는 필드는 ‘묶는 방법’이 아니라 ‘조건’으로 설정해야 합니다.

그래야 최종 결과가 사원별 1행으로 합산됩니다.

즐거운 하루 되세요.

  • 관리자
    2026-08-07 14:48:30

    안녕하세요.

    원인은 구매수량과 부서이름을 ‘묶는 방법’으로 둔 상태에서 조건을 걸었기 때문입니다.

    현재 SQL에는

    GROUP BY 구매.구매수량, 부서.부서이름
    HAVING ...
    

    이 들어가 있습니다.

    이렇게 되면 같은 사원이라도 구매수량이 다른 레코드끼리는 서로 다른 그룹으로 나뉘기 때문에 구매금액 합계가 따로따로 표시됩니다.

    해결 방법은 쿼리 디자인에서 다음 두 필드의 요약을 ‘조건’으로 변경하는 것입니다.

    • 구매수량 → 요약: 조건

    • 부서이름 → 요약: 조건

    그러면 SQL이

    WHERE ...
    GROUP BY 구매자
    

    형태로 바뀌고, 먼저 조건에 맞는 레코드만 걸러낸 뒤 사원별로 구매금액을 합계하게 됩니다.

    즉, 이번 문제의 핵심은:

    조건에만 사용하는 필드는 ‘묶는 방법’이 아니라 ‘조건’으로 설정해야 합니다.

    그래야 최종 결과가 사원별 1행으로 합산됩니다.

    즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.