根据多个条件更新查询

时间:2014-10-08 20:30:08

标签: sql ms-access-2007

在Access 2007中,我希望创建一个更新查询,以根据同一个表中city_field中的数据更新region_field。我只在city_field中有数据。只有13个城市和5个地区 - 中部,西部,东部,北部和南部。随着表的增长,我不会覆盖以前的区域条目(我想如果不是Null则继续更新)。当我在UPDATE TO框中只有一个条目时,它工作正常:

UPDATE tblCustomers SET tblCustomers.region = "CENTRAL"
WHERE (((tblCustomers.office)="LA" Or (tblCustomers.office)="SF" Or (tblCustomers.office)="SD"));

如何将其余区域和相应城市添加到此声明中?

谢谢。

1 个答案:

答案 0 :(得分:1)

理想情况下,您应该创建一个仅存储城市和地区的附加表格。根据您提供的内容,此表目前仅包含13行(每个办公室一行)。

然后,你可以这样做:

UPDATE tblCustomers 
SET tblCustomers.region = (select top 1 NEW_TABLE.region from NEW_TABLE where NEW_TABLE.office = tblCustomers.office)

"前1" part只是确保子查询只返回一行。没有这个,Access可能不喜欢查询。当然,您的NEW_TABLE每个独特办公室只能包含一行。

相关问题