读书人

Update语句

发布时间: 2012-02-05 12:07:15 作者: rapoo

求助Update语句
现在有四列数据,要求采用一条UPDATE语句根据条件A分组来更新第四列的汇总字段

条件A 条件B 条件B权数 条件A权数汇总
1 4 0.10 0
2 4 0.48 0
2 23 0.15 0
1 36 0.17 0


因此,汇总之后条件A中等于1的字段中汇总数均为0.27, 等于2的汇总数为0.63,不知道有没有一句SQL语句能够搞定,谢谢!

[解决办法]
udpate 表 set 条件A权数汇总= (select sum(条件B权数) from 表 a where 表.条件A = a.条件A)
[解决办法]
declare @ta table(col1 int,col2 int, col3 numeric(15,2),col4 numeric(15,2))
insert @ta select 1, 4, 0.10, 0
union all select 2, 4, 0.48, 0
union all select 2, 23, 0.15, 0
union all select 1, 36, 0.17, 0

update a
set col4=(select sum(col3) from @ta where col1=a.col1)
from @ta a

select * from @ta

(所影响的行数为 4 行)


(所影响的行数为 4 行)

col1 col2 col3 col4
----------- ----------- ----------------- -----------------
1 4 .10 .27
2 4 .48 .63
2 23 .15 .63
1 36 .17 .27

(所影响的行数为 4 行)


[解决办法]
Table1:
ConditionA NumA TotalA
1 1 0
2 48 0
2 15 0
1 17 0

Update语句为:

update Table1
set TotalA=(
case ConditionA
When '1 ' then (select sum(NumA) from table1 where ConditionA = '1 ')
when '2 ' then (select sum(NumA) from table1 where ConditionA = '2 ')
end
)

读书人网 >SQL Server

热点推荐