Kiedy uruchamiam to polecenie za pomocą SUM()
SELECT COUNT(*) AS [Records], SUM(t.Amount) AS [Total]
FROM dbo.t1 AS t
WHERE t.Id > 0
AND t.Id < 101;
Dostaję,
Arithmetic overflow error converting expression to data type int.
Masz pojęcie, co jest tego przyczyną?
Po prostu postępuję zgodnie z instrukcjami zawartymi w tej odpowiedzi .
sql-server
aggregate
datatypes
sql-server-2017
Evan Carroll
źródło
źródło
CONVERT()
. Piękny.BIGINT
. To chyba moje najlepsze przypuszczenie.Przyczyną tego problemu jest
SUM()
funkcjamusisz CAST
t.Amount
jakoBIGINT
Odniesienie
źródło