2010-04-26 56 views
1

我有这样的SQL Server的“分组依据”

ID ORDER TEAM TIME 
    IL-1 1 A_Team 11 
    IL-1 2 A_Team 3 
    IL-1 3 B_Team 2 
    IL-1 4 A_Team 1 
    IL-1 5 A_Team 1 
    IL-2 1 A_Team 5 
    IL-2 2 C_Team 3 

我想要的分组名称相同的队伍这也是连续的球队(这是按顺序列)什么表

所以结果表应该看起来像

IL-1 1 A_Team 14 
IL-1 2 B_Team 2 
IL-1 3 A_Team 2 
IL-2 1 A_Team 5 
IL-2 2 C_Team 3 

感谢

埃德它:根据nang的回答,我将ID列添加到我的表中。

回答

0

您的示例中存在问题。为什么第6行和第2行不是“顺序团队”?

1 A_Team 5

2 A_Team 3

不过,也许下面是有用的你:

select neworder, name, sum([time]) from (
select min(n1.[order]) neworder, n2.[order], n2.name, n2.[time] 
from mytable n1, mytable n2 
where n1.Name = n2.Name 
and n2.[order] >= n1.[order] 
and not exists(select 1 from mytable n3 where n3.name != n1.name and n3.[order] > n1.[order] and n3.[order] < n2.[order]) 
group by n2.[order], n2.name, n2.[time]) x 
group by neworder, name 

结果:

neworder名(没有列名)

1 A_Team 19

4 A_Team 2

3 B_Team 2

2 C_Team 3

+0

对于你提到的顺序队的问题,我编辑我的问题和ID字段添加到我的表,我没有写之前让表格看起来更简单一边询问。 – stckvrflw 2010-04-26 08:52:02