MS Access SQL 带小数的平均函数

MS Access SQL Average function with decimals

我正在尝试为一个项目创建一个评级系统,并在表单上显示该项目的所有评级的平均值。我希望评分保留小数点后一位。我想出了下面的代码:

SELECT OvrRate.OvRating, *
FROM tbl1 LEFT JOIN 
    (SELECT Field1, ROUND(AVG(Rating),1) AS OvRating 
     FROM tbl_Review GROUP BY Field1)  AS OvrRate 
ON tbl1.Field1 = OvrRate.Field1;

到目前为止,我的代码可以显示小数点后一位,但当它应该是 5.3 时,它却显示 5.0。所有评论都妥善存储(我认为)。我有一篇评论是5.3,这意味着平均值应该也是5.3,但是就像我上面说的,它不是这样查询的。

有任何修复吗?

MS Access 对整数进行整数运算,因此您需要转换该值。我发现最简单的方法是乘以 1.0:

SELECT OvrRate.OvRating, *
FROM tbl1 LEFT JOIN 
    (SELECT Field1, ROUND(AVG(Rating*1.0), 1) AS OvRating 
     FROM tbl_Review
     GROUP BY Field1
    )  AS OvrRate 
    ON tbl1.Field1 = OvrRate.Field1;