Sql 在一个表中按另一行更新一行
我正在使用Access 2016,我有一个缺少一些数据的表。我需要根据同一表的其他行更新丢失的数据。该表有两个Identifier和两个Criteria字段,空字段表示缺少的数据。幸运的是,数据只在Criteria2列中丢失,当Criteria1不为空时:Sql 在一个表中按另一行更新一行,sql,ms-access-2016,Sql,Ms Access 2016,我正在使用Access 2016,我有一个缺少一些数据的表。我需要根据同一表的其他行更新丢失的数据。该表有两个Identifier和两个Criteria字段,空字段表示缺少的数据。幸运的是,数据只在Criteria2列中丢失,当Criteria1不为空时: Identifyer1 Identifyer2 Criteria1 Criteria2 10 a A3 10 a
Identifyer1 Identifyer2 Criteria1 Criteria2
10 a A3
10 a X NULL
20 b B3
30 c C3
40 d D3
40 d Y NULL
为了填充缺失的数据,复制相同标识符的Criteria2值就足够了。所以结果应该是这样的:
Identifyer1 Identifyer2 Criteria1 Criteria2
10 a A3
10 a X A3
20 b B3
30 c C3
40 d D3
40 d Y D3
我尝试过类似的方法,但无法完成代码:
更新表1设置标准2=如何在此处复制值?如果Criteria1不为NULL,且identifier1=identifier1和identifier2=identifier2,请尝试以下操作
Update table1
Set Criteria2 = (
select max(criteria2) from table1 t1
where t1.identifier1 = table1.identifier1
and t1.identifier2 = table1.identifier2
and t1.criteria2 is not null
)
Where Criteria1 is not NULL
由于更新查询必须在MS-Access中,请考虑对应于相关子查询的域聚合DMAX:
更新表1 t1 SET Criteria2=DMaxCriteria2,表1, Criteria1不为NULL且Identifier1='&t1.Identifier1&' 和identifier2='&t1.identifier2&'这看起来不错,只是发生了一个错误,Access命令需要可更新。