Sql SUM(myfield):将数值转换为数据类型数值时出现算术溢出错误
SQL Server 2008 R2 SP1Sql SUM(myfield):将数值转换为数据类型数值时出现算术溢出错误,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,SQL Server 2008 R2 SP1 SELECT VEN.EAN11ZUC AS EAN , SUM(DET.NbMag) --<< when this line is commented, no error!!! FROM ODS_Vente VEN inner join ODS_DetentionCentraleArticle DET on VEN.EAN11ZUC = DET.EANZUC group by VEN.EAN11ZUC 选择
SELECT
VEN.EAN11ZUC AS EAN
, SUM(DET.NbMag) --<< when this line is commented, no error!!!
FROM ODS_Vente VEN
inner join ODS_DetentionCentraleArticle DET
on VEN.EAN11ZUC = DET.EANZUC
group by VEN.EAN11ZUC
选择
VEN.EAN11ZUC作为EAN
,SUM(DET.NbMag)--我的猜测是,SUM不能与源字段具有相同的数值精度/刻度。您可以尝试将原始值强制转换为尽可能高的精度:
SELECT
VEN.EAN11ZUC AS EAN
, SUM(CAST DET.NbMag AS NUMERIC(38,{# of decimals you want to support}) )
FROM ODS_Vente VEN
inner join ODS_DetentionCentraleArticle DET
on VEN.EAN11ZUC = DET.EANZUC
group by VEN.EAN11ZUC
DET.NbMag
的精度和刻度是多少?正在汇总多少条记录(大约)?错误消息非常明显。那么问题是什么呢?NBMag是一个INT,有很多。。。。记录的数量。。。(我数了一下(*),5分钟后我仍然没有回答…@juergend,特别为你准备的:“我怎么能修好它?”