问题描述
未找到任何解决方法。
我正在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;
它按预期方式工作,并且会精确返回值:
但是如果我的查询是这样:
SELECT T_IVA.Hasta,Sum(T_IVA.Valor_Iva) AS SumaDeValor_Iva FROM T_IVA GROUP BY T_IVA.Hasta;
我得到一些值的十进制数。
不知道这些小数位来自哪里。
我已经在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;