sql sum和excel sum的区别

时间:2014-01-26 06:45:42

标签: sql sql-server excel

当我对这些数字使用TSQL [2005] SUM()函数时:

4562500,
6387500,
2860000,
1825000,
348000,
2737500,
3102500,
6570000,
2007500,
2007500,
4380000,
9125000,
936000,
936000,
1040000,
264000,
240000,
1200000,
4562500,
4.80E+08,
4000000,
1176000,
660000,
1104000,
1404000,
1341600,
1534000,
1466400,
6684000,
3000000,
3600000,
5.14E+09,
0,
2.60E+07,
4197500,
2736000,
3084000,
2916000,
2640000,
480000,
1200000,
1.80E+08,
6000000,
840000,
9600000,
3744000,
4200000,
3060000,
7230000,
1.24E+07,
600000,
150000,
400000,
2100000

它给了我5978168776

虽然MS Excel 2007中的相同计算得到5978169000

当我手动计算结果时,我得到5978169000与Excel相同。

任何人都知道为什么SQL Server以这种方式运行? 谢谢

1 个答案:

答案 0 :(得分:0)

@Jan Doggen

好的 - 我做到了! 非常感谢你们!

我根据SUM()参数值创建了一个表,然后将SUM()应用于这些值: 我的SUM声明: SELECT SUM(GrsPrice) From tblItem

导致5978168776

tblItem架构:

USE [BudgetDb]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[tblItem](
[ItemCode] [varchar](4) COLLATE Arabic_CI_AS NOT NULL
[GrsPrice] [real] NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF 

SUM()值的SQL Server类型为real而不是bigint,这是问题来源。

@ w0lf即使在SQL Server 2008中,当值类型为5974638744时,结果为real