我很难在Access中编写更新查询,如果Status包含值,则会为具有相同ID的所有记录设置Status值。
Table1现在就像这样:
ID Status
1
1 OK
2
2 OK
3
3
通缉的结果是:
ID Status
1 OK
1 OK
2 OK
2 OK
3
3
答案 0 :(得分:0)
一种方法是相关子查询。但是,使用join
:
update table1 join
(select id, max(status) as maxstatus
from table1 as t
group by id
) as t2
on table1.id = t.id
set table1.status = t2.maxstatus
where t2.maxstatus is not null;
答案 1 :(得分:0)
访问UPDATE
查询可能很挑剔。在子查询中使用GROUP BY
的一个将被视为“不可更新”。您可以使用DMax()域聚合功能来避免投诉...
UPDATE tblOlaOkland AS y
SET y.Status = DMax('[Status]','[YourTable]','[ID]=' & y.ID)
WHERE
y.Status Is Null
AND DMax('[Status]','[YourTable]','[ID]=' & y.ID) Is Not Null;
将 YourTable 替换为两个地方的表名。