为什么运行MS Access查询时会出现“输入参数值”?

时间:2010-03-18 19:26:00

标签: sql ms-access

在我的查询中,我使用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”的参数值?

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

1 个答案:

答案 0 :(得分:5)

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