是否可以在访问查询中使用条件语句?

时间:2011-07-27 01:40:26

标签: conditional ms-access-2010

我目前在我的数据库中有一个查询,用于确定记录时间和查看时间之间经过的时间,如下所示:

SELECT d.ID, Age AS Expr1, DateDiff("h",d.dateOpened,Now()) & " hrs" AS Age, fl.flavorname, pkg.package, st.status
FROM lut_status AS st INNER JOIN (lut_flavorname AS fl INNER JOIN (lut_packaging AS pkg INNER JOIN record_holddata AS d ON pkg.id = d.package) ON fl.id = d.flavor) ON st.id = d.holdstatus
WHERE (((d.holdStatus)<>7))
ORDER BY d.dateOpened;

该record_holdData表中还有一个名为finalDispoDate的字段,其中包含保留项目已关闭的日期。我想要做的是创建一个类似的查询,它将使用当前时间来确定保持的年龄,但前提是finalDispoDate字段为null;否则它将使用finalDispoDate中的值来确定保持的年龄(它被创建和被处置之间的时间)。

我知道如何以编程方式执行此操作,但是通过我设置绑定的方式,我宁愿在查询中完成此操作。无法在网上找到任何好的例子。关于如何实现这一目标的任何想法? TIA

2 个答案:

答案 0 :(得分:1)

我认为你可以使用Switchiif函数。我做了任何MSAccess已经有一段时间了。

以下链接示例:

http://www.articlealley.com/ms-access-nested-iif-functions-vs-the-switch-function-1512848.html

答案 1 :(得分:1)

你可以应用Nz函数,所以如果值为NULL,你将为它设置一个默认值,这是一个例子:

从lut_status中选择d.ID,Nz(d.another,“Nop”)