2011-10-04 76 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