2011-09-23 4 views
2

좋아, Oracle 10g DB에 대한 쿼리를 작성하는 데 도움이 필요합니다. 나는이 같은 모습에 테이블이 : 나는 숫자로 시작Oracle min 및 max columns 쿼리

----------------------------- 
| locationId | locationCode | 
----------------------------- 
|  1  |  12345 | 
----------------------------- 
|  2  |  23456 | 
----------------------------- 
|  3  |  34567 | 
----------------------------- 
... 

은 113 말,하지만 변수가 자바에서 생각입니다 :

---------------------------------------- 
| lowerBound | upperBound | locationId | 
---------------------------------------- 
|  0  |  99  |  1  | 
---------------------------------------- 
|  100 | 199  |  2  | 
---------------------------------------- 
... 

또 다른 테이블은 다음과 같다. 그 번호에 해당하는 locationId를 알아 내야합니다. lowerBound와 upperBound 열 사이에 떨어지는 것을 기반으로 두 번째 테이블의 locationCode를 알아 내야합니다. MIN/MAX와 그 사이를 조회했지만, 내가 찾고있는 것을 정확히 찾지는 못합니다. 나는 훌륭한 DBA가 아니므로 도움을 주시면 감사하겠습니다.

답변

2
SELECT t2.locationCode 
    FROM table1 t1 
INNER JOIN table2 t2 USING(locationId) 
WHERE 113 BETWEEN t1.lowerBound AND t1.upperBound 

만약 사용 부품 퍼즐 당신 : 당신의 LOWERBOUND 및 UPPERBOUND 열 정수 경우이 작동합니다

SELECT t2.locationCode 
    FROM table1 t1 
INNER JOIN table2 t2 ON t2.locationId = t1.locationId 
WHERE 113 BETWEEN t1.lowerBound AND t1.upperBound 

참고. VARCHAR 인 경우 물론 TO_NUMBER 함수를 사용해야합니다.

+0

머리에 맞았습니다. 고마워, Benoit – mtaylor314

관련 문제