2009-09-04 11 views
32

テーブルから列の合計を取得しようとすると、エラー番号Arithmetic overflow error converting expression to data type intが得られます。これは、結果の数値がINTに対して大きくなるためです。そこで、次のようにBIGINTにキャストしようとしました。INTを合計すると、算術オーバーフローエラーが発生します。どのようにBIGINTとしてキャストするのですか?

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

これは私に同じエラーです。私は間違って何をしているすべてのアイデア?

答えて

58

合計する前に変換を試してください。例えば。

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

または

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

感謝。それはうまくいくと私はどこに間違っていたか見ることができます。 –

関連する問題