2017-04-27 2 views
0

공통 ID를 가진 모든 특정 ID를 원합니다. 사용자 정의 테이블 형식을 통해 데이터를 보내고 있습니다.Range 사이에 있고 모든 공통 키 ID에있는 모든 ID 찾기

CREATE TYPE rangeType AS TABLE (
    ID2 int NOT NULL, 
    StartRange int NULL, 
    EndRange int NULL 
); 

표는 내가 보내드립니다 값은

DECLARE @temp_table rangeType 
Insert INTO @temp_table values (2,4,10) 
INSERT INTO @temp_table values (3,5,10) 

그래서 내가 출력이 모두가 모든 ID1 년대되고 싶어 형식이 될 것입니다 다음

ID1 ID2 Value 
11  2  3 
12  2  4 
12  3  8.9 
15  3  10 
15  2  4 

같다 ID2의 값이 2와 3이고 ID2가 2 인 행은 4와 10 사이의 값을 가지며 ID2가 3 인 행은 모두 5와 10 사이의 값을 가져야합니다.

그래서 내 출력이 경우,

ID1 
12 
15 
ID1 12

15 모두 2가 매핑하고 3하고 지정된 각각의 범위 사이의 범위를 가져야한다.

I 테이블에 내부 결합을 시도한 후 BETWEEN 연산자를 사용했습니다. 어느 것이 정확한 값을 부여하는지는 내가 원하는 AND 연산보다는 OR 연산입니다.

+0

희망이 질문을 사용할 수는 –

답변

0


당신은 쿼리 아래

SELECT ID1 FROM TABLE 
WHERE ID2 IN (2,3) 
AND 
CASE WHEN ID2 = 2 AND VALUE >= 4 AND VALUE >=10 THEN 1 
    WHEN ID2 = 3 AND VALUE >= 5 AND VALUE >=10 THEN 1 
    ELSE 0 
END = 1; 
+0

헤이 @Jim .. 값이 고정되지 않고 I 이드의과 가치 사용자 정의 데이터 형 등의 목록을 보내고 분명하다 –

관련 문제