【发布时间】:2019-02-01 02:02:50
【问题描述】:
此 Round 语句在 IIf 条件为假时产生错误,在 IIf 条件为真时有效。
我在 SQL 方面的经验非常有限。我从一位退休的同事那里继承了这个我正在尝试调整的 Access DB,所以我一直在黑暗中进行故障排除和拼凑语法。
这是我要开始工作的 Round 语句:
Round(IIf([Manual] is Not Null,[Manual]/180,[MemberDays]/180),3) AS [%ADM]
疑难解答编辑:
Round(IIf([Manual] is Not Null,180/180,100/180),3) AS [%ADM]
Manual 字段是由该语句创建的(不确定是否相关,但我想我会包括在内):
IIf(([2-billing-Prep Export]!wth_date) Is Not Null,[MemberDays]-[Session Cum]+1,"")) AS Manual
预期结果:如果 Manual 不为空,%ADM 将使用 Manual/180 到 3 dec pts 填充。如果 Manual 为空,%ADM 将填充 MemberDays/180 到 3 dec pts。
实际结果:如果 Manual 不为 null,则该语句有效,但当 Manual 为 null 时,%ADM 填充有 #ERROR。谷歌告诉我这是因为计算中的一个字段为空......但 MemberDays 永远不会为空。
故障排除编辑的结果:%ADM 被填充,就好像条件始终为真一样,即使对于 Manual 为空或看起来为空的记录也是如此。我很困惑,因为在进行故障排除编辑之前,该条件似乎可以识别 Manual 中的 null/non null 值。
【问题讨论】: