在查询中进行分组时,Access会添加额外的小数

问题描述

未找到任何解决方法。

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

得到此表:

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;

它按预期方式工作,并且会精确返回值:

enter image description here

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

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

我得到一些值的十进制数。

enter image description here

不知道这些小数位来自哪里。

我已经在CAST和TRUNCATE上进行过搜索,但是我无法应用这些内容(或者我不知道该怎么做)。

我想要的:我只想进行不添加小数点的GROUP BY查询。

谢谢。

解决方法

如果需要精确的结果,则在执行任何操作之前将其强制转换为精确的类型。或者,甚至更好的是,首先使用精确的(非浮点)类型。

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

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...