【发布时间】:2019-01-24 10:07:34
【问题描述】:
我正在尝试创建以下视图:
CREATE VIEW [dbo].[_TEST]
AS
SELECT
a.[PS],
b.[A0001],
CAST(a.[Area] AS DECIMAL(15, 10)) AS A0002,
CAST((b.[0001] / a.[Area]) AS DECIMAL(15, 10)) AS A0003
FROM
dbo.Areas AS a
INNER JOIN
(SELECT
LEFT(PSOA, 6) AS PS, SUM([0001]) as A0001
FROM
dbo.Counts
GROUP BY
LEFT(PSOA, 6) AS b ON a.PS = b.PS
视图创建正常,但使用时出现以下错误:
将数值数据类型转换为数值时出现算术溢出错误
现在,据我了解,这意味着这些值太大而无法放入Decimal(15,10)。但是,手动计算它们,我得到的A0003 的最大值是2151.93382,这对于Decimal(15,10) 来说很好。我什至尝试了Decimal(20,10) 以确保它返回相同的错误。数字肯定不会太大,怎么回事?
【问题讨论】:
-
However, manually calculating them...不要手动计算任何东西。从您的表中执行SELECT MAX(value)并查看实际最大值是多少。
标签: sql sql-server