根据先前行的计算更新字段

时间:2018-02-11 20:24:00

标签: sql ms-access

我想根据该人的几个所有行的字段平均值来更新我的表中的AvgScore记录,例如,我的表格如下:

rDate       | Name | Score | AvgScore
--------------------------------------------------
01/02/2018  | Dave | 12    |    
02/02/2018  | Bob  | 15    |    
02/02/2018  | Dave | 7     |    
03/03/2018  | Bob  | 18    |

因此,在运行查询后,它应该如下所示:

rDate       | Name | Score | AvgScore
--------------------------------------------------
01/02/2018  | Dave | 12    |   12 
02/02/2018  | Bob  | 15    |   15 
02/02/2018  | Dave | 7     |   9.5 
03/03/2018  | Bob  | 18    |   16.5

因此,对于每条记录,它将选择所有记录,其中Name =' personsName'在当前记录之前获得平均分,然后更新当前记录。

目前我正在使用vb.net逐行执行此操作,但这需要永远!

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

update t
    set avgscore = (select avg(t2.score)
                    from t as t2
                    where t2.name = t.name and t2.rdate <= t.rdate
                   );