web-dev-qa-db-fra.com

Erreur de dépassement arithmétique lors de la sommation d'un INT, comment le convertir en BIGINT?

Lorsque j'essaie d'obtenir la somme d'une colonne d'une table, j'obtiens l'erreur Arithmetic overflow error converting expression to data type int car le nombre résultant est trop grand pour un INT. J'ai donc essayé de CAST vers un BIGINT en utilisant ce qui suit

SELECT CAST(SUM(columnname) AS BIGINT) FROM tablename

Cela me donne la même erreur. Des idées sur ce que je fais mal?

42
Brian

Essayez de le convertir avant de sommer. par exemple.

SELECT SUM(CONVERT(bigint, columnname)) FROM tablename

ou

SELECT SUM(CAST(columnname AS BIGINT)) FROM tablename
77
Robin Day