2012-10-15 195 views
0

我對sql IN查詢有疑問。例如,您的表格中有列ID,金額名稱。SQL IN運算符查詢

與查詢:

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

我想這是添加某個ID的數量。無論在IN語句中的id是什麼。如果這樣,兩個101,101 + 101的數量。

問題是它認爲它是一個實例。我該怎麼做呢?它假設爲:

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

其中子選擇返回「101,101」。

+0

你需要解釋爲什麼** **你需要的工作。 – zerkms

+1

這個'SELECT SUM(amount)FROM table WHERE id IN(SELECT id FROM table .........)'有什麼問題;'? –

+0

它與SELECT SUM(amount)FROM table WHERE id IN(101,101);因爲查詢返回101,101這是正確的。但是,如果總結,SUM語句認爲id 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

我做這樣的事情

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

這肯定會爲我