2012-10-25 3 views
0

나는 다음과 같은 열이있는 SQL Server 테이블이 있다고 가정 데이터베이스 전체에서 고유합니다. 제 2 형은 'B'는검색 많은

나는 그들이 존재하고 제 1 형은 'A'는 어디에 경우 모든 유형을 검색 할 필요가
UI1 1 'A' 
UI1 2 'B' 
UI2 1 'X' 
UI2 3 'C' 
UI3 2 'Y' 
UI4 2 'B' 

입니다 : TYPE 1, 2, 3. 내 데이터는 다음과 같습니다 가정 할 수있다 유형 3은 'C'입니다. 특정 ID에 대한 유형이 없으면 검색 할 필요가 없습니다. 형식에 잘못된 값이 있으면 ID를 선택하지 마십시오.

UI1 1 'A' 
UI1 2 'B' 
UI4 2 'B' 

UI2의 유형 1 'A'가 아니므로 UI2을 반환하지 않습니다

그래서, 내 결과 집합과 같이해야한다. UI3의 유형 2는 'B'가 아니므로이를 무시하십시오.

UI1 
UI4 

답변

0

이 쿼리를보십시오 :

나는 그 고유 ID가 필요

SELECT ID, TYPE, VALUE 
FROM Table 
WHERE (TYPE = 1 AND VALUE = 'A') 
    OR (TYPE = 2 AND VALUE = 'B') 
    OR (TYPE = 3 AND VALUE = 'C') 

UPDATE :

SELECT t.ID 
FROM t 
INNER JOIN (
    SELECT ID, MIN(CASE WHEN((TYPE = 1 AND VALUE = 'A') 
    OR (TYPE = 2 AND VALUE = 'B') 
    OR (TYPE = 3 AND VALUE = 'C')) THEN 1 ELSE 0 END) AS VALID 
    FROM t 
    GROUP BY t.ID 
) x 
ON x.ID = t.ID AND x.VALID = 1 
GROUP BY t.ID 
+0

그것이 유형 비록 UI2를 반환하기 때문에이 작동하지 않습니다 1은 'X'입니다. – Mark13426

+0

가져 왔습니다. 업데이트를 참조하십시오. –

관련 문제