【发布时间】:2021-07-04 21:28:53
【问题描述】:
我在 MS ACCESS 中进行的此查询中的 completion_metric 字段一直给我所有记录的 0%。我认为我的 IIF 声明有问题。此外,如何使用此查询在 ms 访问表单上填充文本框。对于文本框,似乎没有让我的记录源成为查询的选项。
SELECT
FORMAT(SUM(IIF (status='Completed',1,0)) / COUNT(Status),"percent") AS completion_metric
FROM promis_lt
GROUP BY Short_ID;
【问题讨论】:
-
您需要将分子乘以十进制常量
1.0或使用显式类型转换为十进制。当前代码使用整数除法,它将始终显示为零(如果这是总数的百分比)。文本框呢:您需要提出单独的问题 -
@astentx 不,它是 Access 所以 / 是浮点除法,\ 是整数除法,无论输入的数据类型如何。 @OP 请提供样本数据。您是否 100% 确定状态字段包含完全完成且没有隐藏字符?运行
SELECT status, len(status) FROM promis_lt并检查长度是否符合预期。 -
另外,永远不要使用
SUM(x)/COUNT(x),而是始终使用AVG。求和然后除会导致AVG没有的溢出和准确性问题 -
一些样本数据会很好。