2014-10-08 91 views
0

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

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

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

谢谢。

回答

1

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

然后,你可以做这样的事情:

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

“顶1”的部分只是确保该子查询只返回一行。没有这个,Access可能不喜欢查询。当然,您的NEW_TABLE应该只包含每个独特办公室的一行。

+0

谢谢你的回复。我想我没有解释清楚。记录将每天添加到此表中。它将包含更多的字段,如地址,电话和其他数据。我需要能够在整个城市的每个记录中“写”相应的区域。我可以通过查找表来更新查询吗?比方说,我今天输入了10条记录 - 其中3个来自中部地区,3个来自西部,3个来自南部,1个来自北部。我想运行查询并为每个城市填充相应的区域。我希望这更有意义? – 2014-10-09 16:44:14