读书人

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

发布时间: 2012-12-25 16:18:29 作者: rapoo

如何根据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='合计'

读书人网 >SQL Server

热点推荐