首页 > 解决方案 > Access 在查询中分组时添加额外的小数

问题描述

没有找到任何解决此问题的方法。

我在 Access Database 2007 32 位上做一些简单的事情。

得到这张表:

Id_iva  Desde       Hasta       Valor_Iva
2       01/01/2000  31/08/2012  18,00%
4       01/09/2012  31/12/2021  21,00%
5       01/01/2022  31/12/2099  25,00%

Valor_iva是一个数字字段,单一类型。我手动输入了这些数字,只有 2 个小数(在这种情况下,它们都是 0,但可能是 18,50% 或 20,23% 等等)

如果我这样查询:

SELECT T_IVA.Hasta, T_IVA.Valor_Iva FROM T_IVA;

它按预期工作,并准确返回值:

在此处输入图像描述

但如果我的查询是这样的:

SELECT T_IVA.Hasta, Sum(T_IVA.Valor_Iva) AS SumaDeValor_Iva FROM T_IVA GROUP BY T_IVA.Hasta;

我在某些值中得到小数。

在此处输入图像描述

无法理解这些小数来自哪里。

我用谷歌搜索了 CAST 和 TRUNCATE,但我无法应用它们(或者我不知道如何应用)。

我想要什么:我只想做一个不添加这些小数的 GROUP BY 查询。

提前致谢。

标签: ms-accessms-access-2007

解决方案


如果您想要精确的结果,请在执行任何操作之前转换为精确的类型。或者,更好的是,首先使用精确(非浮点)类型。

您的值似乎适合Currency数据类型。该Decimal数据类型可用于带有小数的较大值。

SELECT T_IVA.Hasta, Sum(CCur(T_IVA.Valor_Iva)) AS SumaDeValor_Iva FROM T_IVA GROUP BY T_IVA.Hasta;

推荐阅读