ms-access - 为什么我的查询中出现“函数参数无效”错误?
问题描述
我正在尝试运行此查询:
SELECT qry_performPrep2Elo_wta.PK_G, IIf([ID1_ocEdge]>0,[ID1_ocStake],0) AS ocStake, IIf([ID1_ocEdge]>0,[ID1_ocStake]*([ID1_ocmktPr]-1)) AS ocPL
FROM tbl_G_ov_wta INNER JOIN qry_performPrep2Elo_wta ON tbl_G_ov_wta.PK_G = qry_performPrep2Elo_wta.PK_G
WHERE (((tbl_G_ov_wta.ID1_G_Tot_Ov)>=(SELECT Min_games_wta FROM [tbl_ref_games] WHERE Surface = "All surfaces")));
但我收到“函数参数无效”错误。如果我删除 WHERE 子句并运行以下命令:
SELECT qry_performPrep2Elo_wta.PK_G, IIf([ID1_ocEdge]>0,[ID1_ocStake],0) AS ocStake, IIf([ID1_ocEdge]>0,[ID1_ocStake]*([ID1_ocmktPr]-1)) AS ocPL
FROM tbl_G_ov_wta INNER JOIN qry_performPrep2Elo_wta ON tbl_G_ov_wta.PK_G = qry_performPrep2Elo_wta.PK_G;
一切正常。我调查了 WHERE 子句,但找不到问题的原因。实际上,当我删除 IIF 语句但包含 WHERE 子句时:
SELECT qry_performPrep2Elo_wta.PK_G
FROM tbl_G_ov_wta INNER JOIN qry_performPrep2Elo_wta ON tbl_G_ov_wta.PK_G = qry_performPrep2Elo_wta.PK_G
WHERE (((tbl_G_ov_wta.ID1_G_Tot_Ov)>=(SELECT Min_games_wta FROM [tbl_ref_games] WHERE Surface = "All surfaces")));
一切运行良好。
该字段PK_G
是表和查询中通用的主键。
有任何想法吗?
解决方案
你在这里错过了零:
IIf([ID1_ocEdge]>0,[ID1_ocStake]*([ID1_ocmktPr]-1),0)
推荐阅读
- node.js - Node.js 无法识别 UserSchema 中的“this”
- windows - 用户名中的变音符号:.UnicodeDecodeError:“utf-8”编解码器无法解码位置 235 中的字节 0xe9:无效的继续字节
- .net-core-3.1 - How do I create a JWK from PFX certificate?
- laravel - Laravel 刀片式喷射流脚手架有两个 @if 语句和三个 @endif 语句。这怎么可能?
- c++ - 在 getter 和 setter 中通过引用传递 std::string
- r - 如何将地理距离矩阵添加到 igraph 网络?
- javascript - Javascript - 从 unibet 抓取的赔率 - 如何 decript hascode
- sql - 需要帮助来制作可执行的优化 sql 查询
- java - 在 WINDOWS 10 上启动 hive 时出现 Java SLF4J 警告
- oracle-sqldeveloper - 有没有办法限制默认列宽?