2009-08-03 20 views
18

合計を取得しようとしていますが、このクエリを実行すると次のエラーが発生します。何かアドバイス?SQLサーバーの列合計の算術オーバーフロー

SELECT SUM(Size) as total 
FROM AllDocs 
Where DirName LIKE 'sites/test/test%' 


ERROR: 
Msg 8115, Level 16, State 2, Line 1 
Arithmetic overflow error converting expression to data type int. 
Warning: Null value is eliminated by an aggregate or other SET operation. 
+3

[サイズ]のデータ型は何ですか? –

+1

データ型がint –

+2

これらのサイズの合計がMAX intより大きいように見えます。 –

答えて

35

すべてのサイズが自分のSUMができない、(2^31 - 1まで)INTに収まることができますが。 BIGINTにそれらをキャスト

SELECT SUM(CAST(Size AS BIGINT)) as total 
FROM AllDocs 
WHERE DirName LIKE 'sites/test/test%' 
+0

+1。は、私にはよく見えますよ! –

関連する問題