SUM(Column_Value)从计算器给出不同的值

时间:2018-05-01 14:40:01

标签: sql sql-server

下面是我的sql表中的列值。当我使用桌面计算器添加它们时,我得到的总和为0

enter image description here

但是在sql中,当我获取Item_Quantity的总和时,我得到一个奇怪的值,如下所示 enter image description here

此列的数据类型为float。我可以请一点帮忙吗?感谢。

1 个答案:

答案 0 :(得分:3)

不确定为什么你说使用DECIMAL(18,1)无效

这是您的示例数据

DECLARE @t TABLE ( Item_Quanity FLOAT)
INSERT INTO @t
(
    Item_Quanity
)
VALUES
(12.8) ,(-6.8) ,(1.4) ,(0.2) ,(3.4) ,(-2.8), (12) ,(-3.6) ,(-16.6) 

这是您的查询

SELECT SUM(Item_Quanity) FROM @t

给出了这个结果

(No column name)
-3.5527136788005E-15

以下是使用CAST

对该查询的修改
SELECT SUM(CAST(Item_Quanity AS DECIMAL(18,1))) FROM @t

给出了这个结果

(No column name)
0.0

现在将数据类型从FLOAT更改为`DECIMAL(18,1)

DECLARE @t1 TABLE ( Item_Quanity DECIMAL(18,1))
INSERT INTO @t1
(
    Item_Quanity
)
VALUES
(12.8) ,(-6.8) ,(1.4) ,(0.2) ,(3.4) ,(-2.8), (12) ,(-3.6) ,(-16.6) 

SELECT SUM(Item_Quanity)
FROM @t1

返回

(No column name)
0.0