【问题标题】:MS ACCESS 2003 (2000 file format) SQL queryMS ACCESS 2003(2000文件格式)SQL查询
【发布时间】:2011-10-04 18:03:08
【问题描述】:

我有一个包含以下字段的表:[VARIABLE_CODE],[VARIABLE_NAME],[CAS_NO],[USER_VAR_GROUP_NAME] 我想要对这个表做的是使用附加查询并从表中获取条目并将它们放入另一个带有额外字段 [INDICATOR_NAME] 的表中。 [INDICATOR_NAME] 因 [VARIABLE_NAME] 中的内容而异。示例 AluminumDissovled 变量名称 ---> 铝 D 指标名称。

但我能想到的唯一方法是进行许多附加查询。每个条件一个,每个指标名称。这将是非常多的查询要写。是否有一个附加查询包含并执行所有指示符/条件?

添加额外字段 [INDICATOR_NAME] 并运行更新查询,如下所示。 [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',

))))))))));

感谢大家的提示、答案、时间、cmets。

【问题讨论】:

  • Access2003和Access200文件格式的SQL语法没有区别。

标签: sql ms-access ms-access-2003


【解决方案1】:

您可能想考虑创建另一个包含该列表的表:

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

【讨论】:

  • 哇,谢谢 remou,我想我在访问方面做得不够,甚至从未考虑过你可以用它做这样的事情。忘记了访问是所有 abotu 表和表关系 >.> 非常感谢你,我会马上试试这个
猜你喜欢
  • 1970-01-01
  • 2010-12-01
  • 2010-09-13
  • 2013-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多