在查询中,我使用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版本不在最新的两个左右,您甚至可能发现自己甚至无法使用括号)。