在查询中,我使用IIF函数使用BeforeOrAfter将“之前”或“之后”分配给名为AS的字段。

但是,当我运行此查询时,将出现“输入参数值”对话框,要求BeforeOrAfter的值。如果从BeforeOrAfter DESC子句中删除ORDER BY,则不会显示该对话框。

这是有问题的查询:

SELECT
    d.Scenario,
    e.Event,
    IIF(d.LogTime < e.Time, 'Before','After') AS BeforeOrAfter,
    d.HeartRate
FROM
    Data d INNER JOIN
    Events e ON d.Scenario = e.Scenario
WHERE
    e.Include = Yes
ORDER BY
    d.Scenario,
    e.Id,
    BeforeOrAfter DESC


问题:为什么我的AS BeforeOrAfter不能被ORDER BY子句识别?为什么在运行此查询时要求我为“ BeforeOrAfter”输入参数值?

注意:我尝试使用方括号,单引号,双引号等,但是没有任何区别。

最佳答案

我相信Access无法处理别名功能,因此您必须将IIF块复制到Order By -clause中。或创建一个子查询(然后,如果您的Access版本不在最新的两个左右,您甚至可能发现自己甚至无法使用括号)。

07-24 20:38