2011-10-04 80 views
1

我有一個表格,其中包含[VARIABLE_CODE],[VARIABLE_NAME],[CAS_NO],[USER_VAR_GROUP_NAME] 這些字段,我想對這個talbe做什麼,追加查詢並從表格中取出條目,並將其放入另一個帶有額外字段[INDICATOR_NAME]的表格中。 [INDICATOR_NAME]根據[VARIABLE_NAME]中的內容而有所不同。示例AluminumDissovled變量名稱--->鋁D指示器名稱。MS ACCESS 2003(2000文件格式)SQL查詢

但我能想到的唯一辦法就是做很多附加查詢。每個條件一個,每個指示器名稱。這將是非常多的查詢寫。無論如何要有追加查詢包含並執行所有指標nmes /條件?

OR

添加額外的領域INDICATOR_NAME]和運行更新查詢liek下面的一個。 [INDICATOR_NAME]將根據[VARIABLE_NAME]字段中的內容添加。問題是,我有以下十種不同的情況。但實際上我有大約一百個。來自A-Z的 。然而,在查詢中您可以擁有多少個IFF是有限制的。
反正有一個查詢中有很多條件嗎?

UPDATE QRY_Variables_A SET INDICATOR_NAME = 
IIf([VARIABLE_NAME]='ALUMINUM DISSOLVED (AL)' OR [VARIABLE_NAME]='ALUMINUM_27 DISSOLVED -  AL','Aluminum D', 
IIf([VARIABLE_NAME]='ALUMINUM TOTAL' OR [VARIABLE_NAME]='ALUMINUM TOTAL RECOVERABLE' OR   [VARIABLE_NAME]='ALUMINUM_27 TOTAL RECOVERABLE - AL','Aluminum T', 
IIf([VARIABLE_NAME]='ANTIMONY DISSOLVED (SB)' OR [VARIABLE_NAME]='ANTIMONY_121 DISSOLVED - SB','Antimony B', 
IIf([VARIABLE_NAME]='ANTIMONY TOTAL' OR [VARIABLE_NAME]='ANTIMONY TOTAL RECOVERABLE' OR [VARIABLE_NAME]='ANTIMONY_121 TOTAL RECOVERABLE - SB','Antimony T', 
IIf([VARIABLE_NAME]='ARSENIC DISSOLVED' OR [VARIABLE_NAME]='ARSENIC_75 DISSOLVED - AS','Arsenic D', 
IIf([VARIABLE_NAME]='ARSENIC TOTAL' OR [VARIABLE_NAME]='ARSENIC TOTAL RECOVERABLE' OR [VARIABLE_NAME]='ARSENIC_75 TOTAL RECOVERABLE - AS','Arsenic T', 
IIf([VARIABLE_NAME]='BARIUM DISSOLVED' OR [VARIABLE_NAME]='BARIUM_137 DISSOLVED - BA','Barium D', 
IIf([VARIABLE_NAME]='BARIUM TOTAL' OR [VARIABLE_NAME]='BARIUM TOTAL RECOVERABLE' OR [VARIABLE_NAME]='BARIUM_137 TOTAL RECOVERABLE - BA','Barium T', 
IIf([VARIABLE_NAME]='BERYLLIUM DISSOLVED' OR [VARIABLE_NAME]='BERYLLIUM_9 DISSOLVED - BE','Beryllium D', 
IIf([VARIABLE_NAME]='BERYLLIUM TOTAL' OR [VARIABLE_NAME]='BERYLLIUM TOTAL RECOVERABLE' OR [VARIABLE_NAME]='BERYLLIUM_9 TOTAL RECOVERABLE - BE','Beryllium T', 

)))))))))); 

謝謝大家的提示,答案,時間,評論。

+1

Access2003和Access200文件格式在SQL語法上沒有區別。 – onedaywhen

回答

2

你可能想考慮創建一個保存列表中的另一表:

Variable_Name      Indicator_Name 
ALUMINUM DISSOLVED (AL)    Aluminum D 
ALUMINUM_27 DISSOLVED -  AL Aluminum D 

等。然後,您可以加入該表到主表,以獲得指標名稱:

SELECT MyTable.Variable_Name, NewTable.Indicator_Name 
FROM MyTable 
INNER JOIN NewTable 
ON MyTable.Variable_Name = NewTable.Variable_Name 

你甚至可以不更新列,但你可以用一組,像這種情況,例如:

UPDATE MyTable 
INNER JOIN NewTable 
On MyTable.Variable_Name = NewTable.Variable_Name 
SET MyTable.Indicator_Name = NewTable.Indicator_name 
+0

哇謝謝你remou我想我真的沒有做足夠的訪問,甚至從來沒有認爲你可以做這樣的事情與它。忘記了訪問是所有abotu桌子和桌子的關係>。>非常感謝你,我會馬上嘗試 – Chaostryder