How to resolve the arithmetic overflow error converting expression to data type int.

1.1K    Asked by elonji_3393 in SQL Server , Asked on Oct 3, 2022

 When I run this command with SUM()

SELECT COUNT(*) AS [Records], SUM(t.Amount) AS [Total]

FROM   dbo.t1 AS t

WHERE  t.Id > 0

       AND t.Id < 101>

I'm getting,

Arithmetic overflow error converting expression to data type int.

Any idea on what is the cause of it?


Answered by Elvera Peasley

To resolve the arithmetic overflow error converting expression to data type int. -


For values larger than the INT max (2,147,483,647), you'll want to use COUNT_BIG(*).

SELECT COUNT_BIG(*) AS [Records], SUM(t.Amount) AS [Total]

FROM   dbo.t1 AS t
WHERE t.Id > 0 

       AND t.Id < 101>;

If it's happening in the SUM, you need to convert Amount to a BIGINT.

SELECT COUNT(*) AS [Records], SUM(CONVERT(BIGINT, t.Amount)) AS [Total]

FROM dbo.t1 AS t

WHERE  t.Id > 0
       AND t.Id < 101>


Your Answer