2017-02-23 132 views
0

的变化值我如何组值,改变其中的一个时,有不止一个SQL和与集团通过

Table 
ID | VALUE | NAME 
1 | 2 | John 
1 | 5 | Carl 
2 | 4 | Elis 
2 | 1 | Ted 
3 | 2 | James 


RESULT 

ID | VALUE | NAME 
1 | 7 | * 
2 | 5 | * 
3 | 2 | James 

回答

2

下面是应该在任何数据库工作的一种方式:

select id, sum(value) as value, 
     (case when min(name) = max(name) then min(name) else '*' end) as name 
from t 
group by id; 
+0

它的工作就像一个魅力,谢谢! –

0

这是别人询问你必须尝试

Select ID, sum(Value) Value, NAME = (Select b.Name + ' ' AS [text()] 
      From dbo.test b 
      Where a.ID = b.ID 
      ORDER BY a.ID 
      For XML PATH ('')) 
from test a 
group by ID 
order by ID