2012-10-15 3 views
0

SQL IN 쿼리에 대한 질문이 있습니다. 예를 들어 열 ID, 금액 이름이있는 테이블이 있습니다. 쿼리와 SQL IN 연산자 쿼리

는 :

SELECT SUM(amount) FROM table WHERE id IN (101,101); 

내가 이것으로 원하는 것은 특정 ID의 금액을 추가하는 것입니다. 어떤 ID가 IN 문 안에 있는지. 이런 식으로 2 101, 101 + 양 101.

문제는 하나의 인스턴스라고 생각합니다. 어떻게해야합니까? 그것의 가정 :

SELECT SUM(amount) FROM table WHERE id IN (SELECT id FROM table.........); 

"101, 101"을 반환합니다.

+0

을 위해 일하는 것이이

Select * From table1 inner join dbo.fnSplit(@ArgList, ',') 

그런 짓을. – zerkms

+1

이 'SELECT SUM (금액) FROM 테이블 WHERE id IN (SELECT ID FROM 테이블 .........);'의 문제점은 무엇입니까? –

+0

SELECT SUM (amount) FROM 테이블과 동일 WHERE id IN (101,101); 쿼리가 올바른 101,101을 반환하기 때문입니다. 그러나 요약하면 SUM 문은 101 및 101을 1 인스턴스로 간주합니다. 나는 그것이 그것을 두 가지 사례로 생각하기를 원한다. – oneofakind

답변

2
SELECT SUM(tbl.amount) 
FROM tbl 
JOIN (select 101 id UNION ALL 
     select 101) InList on InList.id = tbl.id 

이 방법을 확장하는 방법

.

+0

DANG !! 그것은 일했다! Richard에게 감사드립니다. 여태까지는 그런대로 잘됐다. 감사. – oneofakind

0

는 확실히 나에게 당신은 ** 당신이 필요한 이유 ** 설명 할 필요가