Sql SUM(myfield):将数值转换为数据类型数值时出现算术溢出错误

Sql 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 选择

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
选择
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,特别为你准备的:“我怎么能修好它?”