안녕하세요? 쿼리 1번 문제 작성한게 답지와 다르게 나와서 질문드립니다.
그리고 창고코드 필드 조건에는 not in (select 창고코드 from 제품) 까지만 쓰고 ,
다음필드창에는 필드명은 생산일자로 두고, 조건에다가 between #2024-09-01# and #2025-12-31# 이라고 쓰면 왜 안되는건가요?
또 궁금한것이, 실제 시험에서, 쿼리를 완벽하게 작성했는데, 결과화면이 자꾸 다르게 나온다면 이거는 오답처리로 되나요? 아니면 정답으로 인정이 되는건가요?
긴 글 읽어주셔서 감사합니다.
안녕하세요.
핵심은 생산일자가 어느 테이블의 필드인지입니다.
문제의 뜻은:
2024-09-01 ~ 2025-12-31에 생산된 제품들 중에서,
그 제품들의창고코드에 포함되지 않는 창고를 찾으라는 것
입니다.
따라서 생산일자 조건은 제품 테이블을 조회하는 하위 쿼리 안에 들어가야 합니다.
즉,
Not In (
Select 창고코드
From 제품
Where 생산일자 Between #2024-09-01# And #2025-12-31#
)
처럼 작성해야 합니다.
질문하신 것처럼 바깥쪽에 별도 필드로
창고코드 : Not In (Select 창고코드 From 제품)
생산일자 : Between #2024-09-01# And #2025-12-31#
라고 하면, 바깥 쿼리의 기준은 <창고> 테이블인데 생산일자는 제품 테이블의 조건이므로 문제의 의미가 달라집니다. 제품 테이블을 바깥 쿼리에 추가하면 조인 때문에 오히려 “제품이 없는 창고”를 찾는 조건과 충돌할 수도 있습니다.
즉, 이 문제는:
제품 테이블에서 특정 생산일자 범위에 해당하는 창고코드 목록을 먼저 구하고 → 그 목록에 없는 창고를 찾는 것
이므로 생산일자 조건을 하위 쿼리 안에 넣는 것이 맞습니다.
즐거운 하루 되세요.
-
관리자2026-08-13 10:07:41
안녕하세요.
핵심은 생산일자가 어느 테이블의 필드인지입니다.
문제의 뜻은:
2024-09-01 ~ 2025-12-31에 생산된 제품들 중에서,
그 제품들의창고코드에 포함되지 않는 창고를 찾으라는 것입니다.
따라서
생산일자조건은 제품 테이블을 조회하는 하위 쿼리 안에 들어가야 합니다.즉,
Not In ( Select 창고코드 From 제품 Where 생산일자 Between #2024-09-01# And #2025-12-31# )처럼 작성해야 합니다.
질문하신 것처럼 바깥쪽에 별도 필드로
창고코드 : Not In (Select 창고코드 From 제품) 생산일자 : Between #2024-09-01# And #2025-12-31#라고 하면, 바깥 쿼리의 기준은
<창고>테이블인데생산일자는 제품 테이블의 조건이므로 문제의 의미가 달라집니다. 제품 테이블을 바깥 쿼리에 추가하면 조인 때문에 오히려 “제품이 없는 창고”를 찾는 조건과 충돌할 수도 있습니다.즉, 이 문제는:
제품 테이블에서 특정 생산일자 범위에 해당하는 창고코드 목록을 먼저 구하고 → 그 목록에 없는 창고를 찾는 것
이므로
생산일자조건을 하위 쿼리 안에 넣는 것이 맞습니다.즐거운 하루 되세요.