데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
HAVING절에 ANY나SOME이나ALL을 쓸수가있나요 ?
하위 쿼리에서 값을 둘 이상 반환했습니다. 하위 쿼리 앞에 =, !=, <, <=, >, >= 등이 오거나 하위 쿼리가 하나의 식으로 사용된 경우에는 여러 값을 반환할 수 없습니다. 이런 오류가 뜹니다..
아마 OUT_QTY가 0.00값을 2개나 들고있던데 그거때문인거같습니다..
HAVING MS.IN_QTY <> 0 OR MS.OUT_QTY <> 0 OR MSAI.ADJ_QTY <> 0
) AS BEFORE_STOCK
이 부분입니다!!
이 경우는 HAVING절의 조건 때문은 아닌것으로 보입니다.
위와 같은 오류가 발생한다면,HAVING절에 IN 조건이나 subquery가 있어야 하는데,그런조건이 없는걸로 봐서
select 문안에 subquery를 보셔야할것 같습니다.
또한 AS BEFORE_STOCK 이란 표현으로 봐서...위 쿼리는 SELECT절의 하나의 SUBQUERY의 일부로 보여지고,
HAVING이 있다는건,GROUP BY가 있다는 거고,그 GROUP BY한 결과값이 여러개여서 발생한 현상이라고 보여집니다.
해당 SUBQUERY가 하나의 값을 리턴하도록
GROUP BY를 제거하고, HAVING은 WHERE로 대체를 해보시면 될것 같습니다.