2013-04-24 3 views
1

나는 테이블 이름이 "Value1"인 데이터가 "Table1"이라고 말합니다. 다른 테이블에는 "Table2"에 열이 있습니다. "from"과 "to". "Table1"의 "value"열에서 "between"연산을 수행하고 "Table2"의 "from"및 "to"열에서 피연산자를 수행하려고합니다. 예를 들어다른 테이블의 열에서 범위/조건을 사용하여 테이블에서 데이터 가져 오기

:

Table1  Value 
      ------- 
      10 
      11 
      12 
      13 
      14 
      15 

Table2  from  to 
      -------------- 
      1   3 
      4   10 
      5   15 


operations to be performed: select value from Table1 where value between 1 and 3 
           select value from Table1 where value between 4 and 10 
           select value from Table1 where value between 5 and 15 

출력이 세 작업의 조합이 될 것입니다.

p.p. 거기에는 공통 열이 없습니다.

+1

그러면 출력은 어떻게됩니까? –

+0

@Deep Sharma 이렇게 찾고 있습니까? **' t2.from1, t2.to1, 카운트 의 표 T1 INNER가 t2.from1 의해 t2.from1 및 t2.to1 그룹 BETWEEN t1.Value ON 표 2 가입 T2에서 (값)를 선택 t2.to1' ** – Luv

답변

1

나는 이것이 내가 생각하는 것입니다. 범위 Table2에 일치하는 Table1의 모든 값을 반환합니다.

(값 INT) DECLARE @ t2의 테이블 (FR의 INT, t의 INT, 여기서 iname의 VARCHAR (20))

INSERT INTO @T1 
VALUES 
    (10) 
    ,(11) 
    ,(12) 
    ,(13) 
    ,(14) 
    ,(15) 

INSERT INTO @t2 
VALUES 
    (1, 3, 'First') 
    ,(4, 10, 'Second') 
    ,(5, 15, 'Third') 

SELECT 
    t1.value, t2.iname 
FROM 
    @t1 t1 
INNER JOIN 
    @t2 t2 
    ON t1.Value BETWEEN t2.fr and t2.t 

반품

DECLARE @ T1이 테이블 :

10 Second 
10 Third 
11 Third 
12 Third 
13 Third 
14 Third 
15 Third 

10 이후 회 도시 그것은 두 조건을 일치시킵니다. 선택한 곳에 DISTINCT을 추가 할 수 있습니다.

+0

덕분에 :) –

+1

1 개의 열을 더 추가하는 방법 "image_name"을 Table2에서 출력합니다. 시도했지만 모든 행에 대해 동일한 이미지 이름을 사용하고 있습니다. –

+0

@DeepSharma 내 편집을 참조하십시오. 반환 된 모든 행이 세 번째와 세 번째 숫자 만 일치하기 때문에 테스트 데이터에서 동일한 값을 얻고있을 수도 있습니다. – JNK

관련 문제