2014-10-08 93 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