我有这样的公式。但公式有误。请帮帮我。
select
[DAY] as [DAY],
[Name] as [Name],
((cast([columnA] + [columnB] + [columnC] as bigint) * 1000) / NULLIF(8 * 1024 * 1048576, 0)) as [TotalColumn]
from
[TableA]
错误讯息:
Msg 8115,Level 16,State 2,Line 2
将表达式转换为数据类型int的算术溢出错误。
答案 0 :(得分:3)
由于你的股息很大,我怀疑你需要除数才能成为一个重要人物。由于你有一些整数文字,数学将尝试将它放在一个int中,它太大了。但是你可以强制除数成为一个重要因素。
convert(bigint, 8) * 1024 * 1048576
答案 1 :(得分:1)
我不确定您在尝试的是什么,但您可以使用 NUMERIC 数据类型,因为结果可以包含小数位。
select
'Monday' as [DAY],
'Septiana Fajrin' as [Name],
((cast('5' + '5' + '5' as Numeric) * 1000) / (convert(Numeric, 8) * 1024 * 1048576))as [TotalColumn]
DAY Name TotalColumn
Monday Septiana Fajrin 0.000064610503613