如何编写查询以获得所需的结果?

时间:2019-08-16 14:13:10

标签: ms-access ms-access-2010

我可以使用一些帮助在查询中编写IIF语句。我对IIF语句进行了很多研究,并且知道它们的基本语法和结构。但是我可以在互联网上找到的所有示例都是非常基础的,非常简单明了,因此我需要更加复杂一些。

我在MS Access 2010中有两个表。一个表名为“ ProductMasterData”,另一个表为“ DateCodes”。 ProductMasterData表中的每个记录都有一个名为“ CartonDateFormat”的字段,其中包含数字1-36。 DateCodes表中的每个记录都有一个名为“ OutputDateCode”的字段。我想在IIF语句中说的是,如果CartonDateCode = 1,则从第1行返回OutputDateCode。如果CartonDateCode不等于1,则什么也不做。我想编写类似的IIF语句,对数字2-36会执行相同的操作。我对这些语句的外观有所了解,但是这很模糊,我需要一点帮助。我认为它应该看起来像这样:

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

如果语句的第一部分等于true,我不确定该如何措辞。这是我的第一个查询,非常感谢任何人都可以给我的帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

根据您的需求,也许您最好将2个表合并。
如果只需要这些IIF()语句,则可以执行以下操作:

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

我假设表ID中有一列类似DateCodes的列,用于存储CartonDateFormat中的值所对应的这些代码。
但是,即使没有IIF(),如果您只使用:

SELECT OutputDateCode FROM DateCodes WHERE ID = 1

结果将是相同的:
-如果找到ID,则将返回OutputDateCode
-否则,将返回NULL。