首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么根据Id和年更新合计行的b和c的值

2012-12-25 
如何根据Id和年更新合计行的b和c的值数据样例Id年abc12011合计12011X1172512011X2182212011X3192322012合

如何根据Id和年更新合计行的b和c的值
数据样例


Id    年       a     b    c
1    2011    合计
1    2011     X1   17    25
1    2011     X2   18    22
1    2011     X3   19    23
2    2012    合计 
2    2012     X1   11    27
2    2012     X2   12    21
2    2012     X3   13    20
3    2013    合计
3    2013     X1   14    20 
3    2013     X2   15    34
3    2013     X3   16    22

数据结果

Id    年       a     b    c
1    2011    合计   54    70
1    2011     X1   17    25
1    2011     X2   18    22
1    2011     X3   19    23
2    2012    合计   36    68   
2    2012     X1   11    27
2    2012     X2   12    21
2    2012     X3   13    20
3    2013    合计   45    76
3    2013     X1   14    20 
3    2013     X2   15    34
3    2013     X3   16    22


[最优解释]
;with test as (
select Id,    年   ,    a   , sum(b) b   , sum(c )c
from 数据样例
where a<>'合计'
group by Id,    年   ,    a   )
update a
set a.b=b.b ,a.c=b.c
from 数据样例 a inner join test b on a.id=b.id and a.年=b.年
where a.a='合计'
 

热点排行