如何编写查询以获得我想要的结果?

How can I write a query to get the result I want?

我需要一些帮助才能在查询中编写 IIF 语句。我对 IIF 语句进行了大量研究,了解它们的基本语法和结构。但是我在 Internet 上可以找到的所有示例都非常基础且非常简单,我需要我的示例稍微复杂一些。

我在 MS Access 2010 中有两个 table。一个叫做 "ProductMasterData",另一个是 "DateCodes." ProductMasterData table 中的每条记录都有一个字段叫做"CartonDateFormat" 包含数字 1-36。 DateCodes table 中的每条记录都有一个名为 "OutputDateCode." 的字段 我想在 IIF 语句中说明的是,如果 CartonDateCode= 1,则 return 第 1 行的 OutputDateCode。如果 CartonDateCode不等于 1,则什么也不做。我想编写类似的 IIF 语句,对数字 2-36 执行相同的操作。我知道语句应该是什么样子,但它很模糊,我需要一些帮助。我认为它应该看起来像这样:

IIF(CartonDateFormat=1, I don't know what to put here, Nothing)

如果语句的第一部分等同于 true,我不确定如何表达要做什么。这是我的第一个查询,所以我非常感谢任何人能给我的帮助。谢谢!

根据您的需要,也许您最好加入 2 tables。
如果您只需要这些 IIF() 语句,您可以这样做:

IIF(
  CartonDateFormat = 1, 
  (SELECT OutputDateCode FROM DateCodes WHERE ID = 1), 
  NULL
)

我假设 table DateCodes 中有一个像 ID 这样的列,它存储了 CartonDateFormat 中的值对应的这些代码。
但即使没有 IIF() 如果你只是使用:

SELECT OutputDateCode FROM DateCodes WHERE ID = 1

结果是一样的:
- 如果找到 id,则返回 OutputDateCode
- 如果不是则返回 NULL。