回答:
INT
最大値(2,147,483,647)より大きい値の場合は、COUNT_BIG(*)を使用します。
SELECT COUNT_BIG(*) AS [Records], SUM(t.Amount) AS [Total]
FROM dbo.t1 AS t
WHERE t.Id > 0
AND t.Id < 101;
で発生している場合SUM
、に変換Amount
する必要がありますBIGINT
。
SELECT COUNT(*) AS [Records], SUM(CONVERT(BIGINT, t.Amount)) AS [Total]
FROM dbo.t1 AS t
WHERE t.Id > 0
AND t.Id < 101;
BIGINT
。しかし、それは私の最善の推測です。
この問題はSUM()
機能によって引き起こされます
t.Amount
としてキャストする必要がありますBIGINT
SELECT COUNT(*) AS [Records], SUM(CAST(t.Amount AS BIGINT)) AS [Total]
FROM dbo.t1 AS t
WHERE t.Id > 0
AND t.Id < 101;
参照
CONVERT()
。綺麗な。