sql - SUM(Column_Value) 给出的值与计算器不同

标签 sql sql-server

下面是我的 SQL 表中的列值。当我使用桌面计算器将它们相加时,总和为 0

enter image description here

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

该列的数据类型是浮点型。我可以得到一些帮助吗?谢谢。

最佳答案

不知道为什么你说使用 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

关于sql - SUM(Column_Value) 给出的值与计算器不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50118511/

相关文章:

SQL:列上的外键指向同一列

ios - 重新排序 uitableview 中的项目并将更改应用于 sqlite 数据库

php - 如何在单列 MySQL 查询中设置所有值

sql - ON DELETE CASCADE 用于与 MS SQL Server 中同一个表的多对多关系

sql - 比较两个表并找出列值的差异

sql-server - SQL Server 错误 "Implicit conversion of because the collation of the value is unresolved due to a collation conflict."

sql - "every table"上自动递增键的优缺点

sql - 如何在 Aqua Data 中打开查询分析器(窗口)

c# - EntityFramework (.NET Core) 多个条件左外连接

c# - 无法连接到 LINQ to SQL 网页上的 SQL 服务器