2012-05-03 6 views
1

하나의 테이블 만보고 있으므로 일치해야하는 값이 있습니다.SQL은 b 열의 모든 값과 일치하고 일치하는 열 a를 반환합니다.

Col A/Col B 
1/1 
1/2 
1/3 
2/2 
2/3 
4/1 
4/3 

그래서에서 전달하는 값은 1이 3 나는 내가 했어 그룹에 의한이 수와, 해봤 1, 4

반환 싶어 것 두 개의 하위 쿼리를 사용하지만 작동하지 않습니다.

EDIT : 내가 SQL Server 외부에 구축하고있는 다른 쿼리 내에서이 쿼리를 사용해야하는 경우 이상적으로 선택 쿼리를 사용하고 싶습니다.

EDIT2가 : 이상적으로 내가 전달 된 값이 COLUMNB 및 반환 값 관련 올바르게 이해 한 경우 CSV 문자열

+0

나는 그것을 얻지 않는다. 왜 1과 3이 1과 4를 반환합니까? –

+0

입력 및 출력 기준은 무엇입니까? 자세한 설명을 제공해주십시오. –

+1

입력 기준은'where col_B IN (1,3)'이고 출력은'select col_A'입니다. – Jules

답변

4
select ColA 
from your_table 
where ColB in(1, 3) 
group by ColA 
having count(ColA) > 1 
+0

왜 거기에 HAVING 문이 있습니까?/ –

+0

+1 이것이 올바른 대답 인 것 같습니다 –

+1

@StuartBlackler :이 기능을 사용하지 않으면 모든 ColA의 결과가 ** ** **' 1 '또는'3 '을 값으로 사용할 수 있습니다.하지만 OP는 ColA와 함께 ** 모두 ** –

0

로 내 입력을 전달하고 싶은 것은 COLUMNA에서 온 :

SELECT  A.ColumnA 
FROM  [YOUR TABLE] A 
INNER JOIN [YOUR TABLE] ON (A.ColumnA = B.ColumnA AND B.ColumnB = 1) 
WHERE  A.ColumnB = 3 
+0

감사합니다. 그러나 많은 입력 값을 전달할 수 있습니다 :( – Jules

+0

어떻게 값을 전달합니까? 어떤 코드를 제공합니까? – weenoid

관련 문제