SQL Server中的百分比计算
我有列SQL Server中的百分比计算,sql,sql-server,percentage,Sql,Sql Server,Percentage,我有列RSL和sumofsl。我尝试过计算百分比,但它返回100%或0%。在某些情况下,这是一个错误的计算,因为它显示为0%。以下是供您参考的示例 RSL SUMofRSL Percentage ------------------------------ 2 2 100% 1 2 0% 48 96 0% 10 10 100% 我用过 (
RSL
和sumofsl
。我尝试过计算百分比,但它返回100%或0%。在某些情况下,这是一个错误的计算,因为它显示为0%。以下是供您参考的示例
RSL SUMofRSL Percentage
------------------------------
2 2 100%
1 2 0%
48 96 0%
10 10 100%
我用过
([RSL] / [SumOfRSL]) * 100
假设
RSL
和sumofsl
的数据类型是整数,则需要将列转换为支持小数点的数据类型
例如:-
(CAST([RSL] AS DECIMAL(10, 4)) / CAST([SumOfRSL] AS DECIMAL(10, 4)))
假设
RSL
和sumforsl
的数据类型是整数,则需要将列转换为支持小数点的数据类型
例如:-
(CAST([RSL] AS DECIMAL(10, 4)) / CAST([SumOfRSL] AS DECIMAL(10, 4)))
两个整数因子的除法将是另一个整数。如果希望结果为十进制,则至少有一个因子必须为十进制类型。(见此)
您可以按照凯恩的建议对一个或两个值进行强制转换。两个整数因子的除法将是另一个整数。如果希望结果为十进制,则至少有一个因子必须为十进制类型。(见此)
您可以按照凯恩的建议强制转换一个或两个值。请尝试
[RSL]*100/[sumofsl]
以避免在相乘之前将整数截断为0。您的列是什么数据类型?如果您有INT
值,那么您正在执行INT除法-它不返回任何分数值-您需要使用([RSL]*1.0/[sumofsl])*100.0
将这些值转换为十进制
,从而获得分数值stry[RSL]*100/[sumofsl]
避免整数在相乘前被截断为0。列的数据类型是什么?如果您有INT
值,您正在执行INT除法-它不返回任何分数值-您需要使用([RSL]*1.0/[sumofsl])*100.0
将这些值转换为十进制
,以便获得分数值