我正在尝试将行中的值添加到单独的列中,并将结果保存在同一行中的另一列中。我希望这对表中的每一行都有。
Insert into DataTable (Total) values
((select (T1+T2+T3+T4+T5) from DataTable))
我收到错误消息:
子查询返回了多个值。
我可以猜测我的Select语句返回多个值,然后尝试将返回的值存储到表中的一行中。
有没有办法实现这个目标?
答案 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