当前位置: 代码迷 >> Sql Server >> mssql 怎么让 字段值 为 其他记录值的计算结果
  详细解决方案

mssql 怎么让 字段值 为 其他记录值的计算结果

热度:713   发布时间:2016-04-24 09:11:01.0
mssql 如何让 字段值 为 其他记录值的计算结果
问题不太好表示,我用图示意

表一
字段1 字段2 字段3 字段4 字段5                            字段6
记录11 记录21 记录31 记录41 记录51              这里是我需要的  记录61
记录12 记录22 记录32 记录42 记录52
记录13 记录23 记录33 记录43 记录53
记录14 记录24 记录34 记录44 记录54
记录15 记录25 记录35 记录45 记录55
记录16 记录26 记录36 记录46 记录56
记录17 记录27 记录37 记录47 记录57
记录18 记录28 记录38 记录48 记录58


我现在想让  字段61   的值为:
(    (记录11+记录21)/2  +   (记录31+记录41)/2  +  记录51    )  / 3

然后62、63依次类推比如: 记录68的值就为

  字段68   的值为:
(    (记录18+记录28)/2  +   (记录38+记录48)/2  +  记录58    )  / 3

    
------解决思路----------------------
--你是要更新 还是查询呢
--查询
SELECT 字段1,字段2,字段3,字段4,字段5
,((字段1+字段2)/2+(字段3+字段4)/2+字段5)/3 AS [字段6]
FROM 表一
--更新
UPDATE 字段1
SET 字段6=((字段1+字段2)/2+(字段3+字段4)/2+字段5)/3

------解决思路----------------------
更正一下
--更新
UPDATE 表一
SET 字段6=((字段1+字段2)/2+(字段3+字段4)/2+字段5)/3

------解决思路----------------------
也可以在创建表时,将字段6作为计算列,08以上支持

     create table test
(
  字段1 int ,
  字段2 int ,
  字段3 int ,
  字段4 int , 
  字段5 int , 
  字段6 as ((字段1+字段2)/2+(字段3+字段4)/2+字段5)/3
)

  相关解决方案