SQL合并并将多行合并为一行

时间:2016-12-08 19:25:30

标签: sql sql-server

基本上我有一个看起来像这样的SQL表;

Name   Week 1  Week 2  Week 3  Week 4  Week 5
James  NULL    5       NULL    NULL    NULL
James  10      NULL    NULL    NULL    NULL
James  NULL    NULL    NULL    5       NULL
James  NULL    NULL    NULL    20      NULL
Tom    NULL    NULL    5       NULL    NULL
Tom    NULL    10      NULL    NULL    NULL
Tom    25      NULL    NULL    NULL    NULL
Tom    NULL    NULL    NULL    5       NULL
Tom    NULL    NULL    NULL    5       NULL

我希望将行组合在一起(同时也将值相加)以获得更像这样的东西;

Name   Week 1  Week 2  Week 3  Week 4  Week 5
James  10      5       20      25      NULL
Tom    25      10      5       10      NULL

但我无法想到这样做的好方法。我的数据有很多列和行,所以我正在寻找一些理想情况下不需要列出所有单个列或行名称的内容。

由于

1 个答案:

答案 0 :(得分:2)

按名称汇总行和组

 select 
     Name
   , Week1 = sum(Week 1)
   , Week2 = sum(Week 2)
   , Week3 = sum(Week 3) 
   , Week4 = sum(Week 4) 
   , Week5 = sum(Week 5) 
   from Table 
   group by Name