결과값은 똑같이 나왔는데 틀린것으로 봐야하나요..?
2026_실제 시험장 따라하기
-3. 씨앗입고조회 쿼리 0/7
-쿼리조회 X [씨앗입고조회] 쿼리 (SELECT 씨앗입고.입고일자, 씨앗.씨앗명, 씨앗입고.입고수량, 씨앗입고.입고단가, 씨앗입고.판매단가, Switch([입고단가]<=10000,[판매단가]*0.1,[입고단가]<=30000,[판매단가]*0.2,[입고단가]>30000,[판매단가]*0.3) AS 부가세 FROM 씨앗 INNER JOIN 씨앗입고 ON 씨앗.씨앗코드 = 씨앗입고.씨앗코드 GROUP BY 씨앗입고.입고일자, 씨앗.씨앗명, 씨앗입고.입고수량, 씨앗입고.입고단가, 씨앗입고.판매단가 HAVING (((씨앗.씨앗명) Like "*" & [씨앗명의 일부를 입력] & "*")) ORDER BY 씨앗입고.입고일자 DESC; )이 정답(SELECT 씨앗입고.입고일자, 씨앗.씨앗명, 씨앗입고.입고수량, 씨앗입고.입고단가, 씨앗입고.판매단가, Switch([입고단가]<=10000,[판매단가]*0.1,[입고단가]<=30000,[판매단가]*0.2,[입고단가]>30000,[판매단가]*0.3) AS 부가세 FROM 씨앗 INNER JOIN 씨앗입고 ON 씨앗.씨앗코드 = 씨앗입고.씨앗코드 WHERE (((씨앗.씨앗명) Like "*" & [씨앗명의 일부를 입력] & "*")) ORDER BY 씨앗입고.입고일자 DESC; )과 다릅니다.
안녕하세요.
작성하신 쿼리에서는 씨앗명 조건을 HAVING으로 지정하기 위해 입고일자, 씨앗명, 입고수량, 입고단가, 판매단가를 모두 GROUP BY로 묶었습니다.
하지만 이 쿼리에는 SUM, AVG, COUNT, MAX와 같이 그룹별로 집계해야 하는 필드가 없습니다. 따라서 GROUP BY와 HAVING을 사용할 필요가 없습니다.
씨앗명 Like "*" & [씨앗명의 일부를 입력] & "*"은 단순히 조건에 맞는 레코드를 조회하는 조건이므로 정답처럼 WHERE 절에 지정하면 됩니다.
즉,
일반적인 레코드 검색 조건 →
WHERESUM,AVG,COUNT등의 집계 결과에 대한 조건 →HAVING
으로 구분하면 됩니다.
따라서 이 문제에서는 GROUP BY와 HAVING을 제거하고 다음과 같이 WHERE를 사용하는 것이 맞습니다.
WHERE 씨앗.씨앗명 Like "*" & [씨앗명의 일부를 입력] & "*"
작성하신 쿼리도 경우에 따라 조회 결과가 동일하게 나타날 수 있지만, 불필요한 그룹화가 추가되어 쿼리 구조가 정답과 다르므로 채점 프로그램에서는 오답으로 처리될 수 있습니다.
즐거운 하루 되세요.
-
관리자2026-09-28 16:36:43
안녕하세요.
작성하신 쿼리에서는
씨앗명조건을HAVING으로 지정하기 위해입고일자,씨앗명,입고수량,입고단가,판매단가를 모두GROUP BY로 묶었습니다.하지만 이 쿼리에는
SUM,AVG,COUNT,MAX와 같이 그룹별로 집계해야 하는 필드가 없습니다. 따라서GROUP BY와HAVING을 사용할 필요가 없습니다.씨앗명 Like "*" & [씨앗명의 일부를 입력] & "*"은 단순히 조건에 맞는 레코드를 조회하는 조건이므로 정답처럼WHERE절에 지정하면 됩니다.즉,
일반적인 레코드 검색 조건 →
WHERESUM,AVG,COUNT등의 집계 결과에 대한 조건 →HAVING
으로 구분하면 됩니다.
따라서 이 문제에서는
GROUP BY와HAVING을 제거하고 다음과 같이WHERE를 사용하는 것이 맞습니다.WHERE 씨앗.씨앗명 Like "*" & [씨앗명의 일부를 입력] & "*"작성하신 쿼리도 경우에 따라 조회 결과가 동일하게 나타날 수 있지만, 불필요한 그룹화가 추가되어 쿼리 구조가 정답과 다르므로 채점 프로그램에서는 오답으로 처리될 수 있습니다.
즐거운 하루 되세요.