汇总一行中的列值并保存到另一列中

时间:2014-05-28 14:19:28

标签: sql-server

我正在尝试将行中的值添加到单独的列中,并将结果保存在同一行中的另一列中。我希望这对表中的每一行都有。

Insert into DataTable (Total) values 
((select (T1+T2+T3+T4+T5) from DataTable))

我收到错误消息:

  

子查询返回了多个值。

我可以猜测我的Select语句返回多个值,然后尝试将返回的值存储到表中的一行中。

有没有办法实现这个目标?

4 个答案:

答案 0 :(得分:3)

这样做:

UPDATE DataTable
SET Total = T1+T2+T3+T4+T5

但是,您可以让服务器使用computed column自动计算。删除Total列并添加替换内容,如下所示:

ALTER TABLE DataTable DROP COLUMN Total

ALTER TABLE DataTable ADD Total as (T1+T2+T3+T4+T5)

答案 1 :(得分:1)

聚合(总计)列必须存在:

UPDATE DataTable
SET Total = field1 + field2 + field3 + field4

答案 2 :(得分:1)

UPDATE DataTable
SET Total = T1+T2+T3+T4+T5

答案 3 :(得分:1)

如果要将值放入同一行的列中,则需要执行类似

的操作
UPDATE DataTable SET Total = T1 + T2

但是如果你希望Total总是成为其他列的总和,你应该将它作为计算列。

http://technet.microsoft.com/en-us/library/ms191250%28v=sql.105%29.aspx