SQL 쿼리에서 문제가 발생했습니다.SQL 쿼리 최대 값과 최소값
다음 테이블이있는 테이블 table_name이 있습니다 : id, zip, size. 이 표에는 3 개의 항목이 있으며 '우편 번호'입력란은 2001, 2005, 2009이고 '크기'값은 3 개의 입력 항목 모두에 대해 5입니다. 그리고 나는 나의 수색 당 분야의 최대와 최소 가치를 원한다.
내가 2001 년에서 2009 년 사이에 어떤 값을 검색하면 쿼리는 쿼리 당 완벽한 결과를 얻습니다.
예 : 다음 필드 값 2003을 검색하는 경우는 최소값 2001 최대 값 2005
그러나 때 2009보다 작 2001 이상의 값을 검색 한 후 비어 결과를 제공 모두를 제공합니다.
아무도 내 쿼리에서 어떤 실수를했는지 알려주실 수 있습니까?
SELECT * FROM `table_name`
WHERE `size` LIKE ('%5%')
AND (`zip` in (SELECT max(`zip`)
FROM `table_name`
WHERE `zip` < '2010'
order by `zip` desc)
OR `zip` in (SELECT min(`zip`)
FROM `table_name`
WHERE `zip` > '2010'
order by `zip` asc)
)
'zip'필드는 숫자 또는 char 필드입니까? 또한 '크기'필드는 어떤 데이터 유형입니까? – krowe
당신은'MySQL','SQL-Server','SQL-Server-2008' 태그를 붙였습니다. 그러나 이것은'MySQL' 문법과 같이 의심 스럽습니다. 어떤 DBMS를 실제로 사용하고 있습니까? – GarethD
2010을 검색 할 때 2009 년을 반환해야합니다. 그렇지 않으면 데이터 유형이 잘못되었을 수 있습니다. Btw, 당신은 스칼라 서브 쿼리에서 ORDER BY가 필요하지 않습니다. – dnoeth