Answers:
对于大于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()
。美丽。