Quando eu executo este comando comSUM()
SELECT COUNT(*) AS [Records], SUM(t.Amount) AS [Total]
FROM dbo.t1 AS t
WHERE t.Id > 0
AND t.Id < 101;
Estou entendendo,
Arithmetic overflow error converting expression to data type int.
Alguma ideia de qual é a causa disso?
Estou apenas seguindo as instruções nesta resposta .
Para valores maiores que o
INT
máximo (2.147.483.647), convém usar COUNT_BIG (*).Se estiver acontecendo no
SUM
, você precisa converterAmount
para umBIGINT
.Este problema é causado pela
SUM()
funçãovocê tem que CAST
t.Amount
comoBIGINT
Referência