access 2016 中的变量选择语句

问题描述

我正在尝试弄清楚如何执行一个选择语句,该语句根据标准改变它选择的内容,并自行扩展(或多或少)。在我的参考表中,我有要返回的条件和字段,但没有其他字段。下面是一个简化的表格。

参考表

标准 Field1 字段 2 Field3
A 没有 没有
B 没有
C

数据表

其他东西 标准 Field1 字段 2 Field3
耶鲁 A 1 1 1
相同 B 1 1
大西洋 B 1 1 1
英文 D 1 1

预期回报

其他东西 标准 Field1 字段 2 Field3
耶鲁 A 1 NULL NULL
相同 B NULL 1 1
大西洋 B NULL 1 1

我想要的只是参考表中的字段,其中两个表中的 Criteria 字段匹配(如果标准为“A”,则只返回 Field1 等)每条记录。我有一些额外的数学函数可以在这些结果上运行,所以我需要返回的值。社区可以提供的任何帮助将不胜感激。谢谢你。 (P.S. 我有 MS Access 2016)

解决方法

加入表格并使用 IIf() 表达式。假设Reference表中的Field1、Field2、Field3是yes/no类型,考虑:

SELECT Data.*,IIf([Reference].[Field1],[Data].[Field1],Null) AS F1,IIf([Reference].[Field2],[Data].[Field2],Null) AS F2,IIf([Reference].[Field3],[Data].[Field3],Null) AS F3
FROM Data INNER JOIN Reference ON Data.Criteria = Reference.Criteria;