ACCESS的IIF判断条件过长导致结果不正确

SQL文是在VBA代码里面循环拼接的,项目来源于一个输入的文档,其中有一段如下:

SELECT
IIF(项目1+项目2+~+项目100 = TOTAL,"X","O")

现在碰到一个问题,IIF判断条件中项目过多的时候(目前是超过93个,ISNULL之类的判断对个数有影响)这个IIF的结果就变得不正确。目前试过以下方法
1)将项目用括号括起来

SELECT
IIF((项目1+项目2)+ ~ +(项目99+项目100) = TOTAL,"X","O")

这样的结果是有一部分数据不正确,都是小数位特别多的,估计是加括号之后,double类型的数据计算顺序改变,导致结果不正确,所以不行

2)将结果放到查询中再比较

SELECT
项目1+项目2+~+项目100 AS SUM,
IIF(SUM = TOTAL,"X","O")

这样计算似乎也不行,也是有字段过多的问题

拆分成多个小组进行计算,再用川F函数进行比较试试。
SELECT 川F(项目1+项目2+...+项目50=TOTAL, "X", "O") & 川F(项目51+项目52+...+项目93=TOTAL, "X", "O") AS 判断结果 FROM 表名;

以下内容部分参考ChatGPT模型:


你可以将IIF判断条件拆分成多行,如下所示:

SELECT IIF(
    项目1+项目2+~+项目100 = TOTAL,
    "X",
    "O"
)

这样即使条件过长也不会影响结果的正确性。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快