怎么根据Id和年更新合计行的b和c的值
如何根据Id和年更新合计行的b和c的值
数据样例
数据结果
------最佳解决方案--------------------
;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='合计'
数据样例
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='合计'