我有一个衡量学生成绩表student
在我的数据库如下:如何更新在同一个表基于先前数据的SQL表
ID TestDate PerformanceStatus (PS)
1 15/03/2016 0
1 01/04/2016 2
1 05/05/2016 1
1 07/06/2016 1
2 15/03/2016 0
2 01/04/2016 2
2 05/05/2016 1
2 07/06/2016 3
2 23/08/2016 1
我想更新我的表有一个新列PreviousPerformanceStatus。 这PreviousPerformanceStatus是基于performanceStatus计算监测,如下: 注:如果没有performanceStatus的TestDate记录之前,我想使PreviousPerformanceStatus = PerformanceStatus
ID TestDate PS PreviousPerformanceStatus
1 15/03/2016 0 0
1 01/04/2016 2 0
1 05/05/2016 1 2
1 07/06/2016 1 1
2 15/03/2016 0 0
2 01/04/2016 2 0
2 05/05/2016 1 2
2 07/06/2016 3 1
2 23/08/2016 1 3
如何更新我的SQL表?我应该使用连接吗? 谢谢。
逻辑不清晰(或者可能你有一个错字)。你能解释一下规则是什么吗? –
下面是一个提示:首先,编写一个返回结果的查询(一条SELECT语句)。是的,JOIN操作是实现结果的一种方式。或者,您可以使用相关的子查询。一旦你有一个SELECT语句,你可以将它转换成一个UPDATE语句。 – spencer7593
举一个例子,我们使用ID = 1的学生。该previousPerformanceStatus是基于PerformanceStatus从“早期的”测试日期计算,所以当TestDate = 01/04/2016年,我想从TestDate = 15/03/2016使用的数据。但是,如果我找不到任何以前的数据,我将默认PreviousPerformanceStatus与PerformanceStatus –