我需要以百分比计算总数:
请随时向我询问更多详细信息。
=Sum(Fields!OutSLA.Value, "SLAPriority")/Sum(Fields!InSLA.Value, "SLAPriority")*100
我有这个,但没有完全按计划进行。非常基础的知识,对不起
很抱歉再次发帖。我的百分比很奇怪。即 -200 或 -Infinity:
我需要以百分比计算总数:
请随时向我询问更多详细信息。
=Sum(Fields!OutSLA.Value, "SLAPriority")/Sum(Fields!InSLA.Value, "SLAPriority")*100
我有这个,但没有完全按计划进行。非常基础的知识,对不起
很抱歉再次发帖。我的百分比很奇怪。即 -200 或 -Infinity:
要在报告级别执行此操作,您可以使用以下内容:
=1 - (Fields!OutSLA.Value / Fields!InSLA.Value)
我不会在表达式中乘以 100,我只会将文本框Format属性设置为适当的值,例如P0。
上面的表达式假设有一个明细行。要在页眉或页脚行中应用,您可以使用以下内容:
=1 - (Sum(Fields!OutSLA.Value) / Sum(Fields!InSLA.Value))
我在一份基本报告中尝试了第一个公式:
结果与您的示例略有不同,但您可以在最后一列中看到基础数字以及为什么它们在 P0 列中被四舍五入。
评论后编辑
您可以通过使用 IIf 语句检查0 InSLA 总数来防止 Infinity 值,例如:
=1 -(IIf(Sum(Fields!InSLA.Value) <> 0
, Sum(Fields!OutSLA.Value) / Sum(Fields!InSLA.Value)
, 0))
根据您的计算,-200% 是该特定行的正确值:1 - (3/1) = -2 = -200 %。你希望它是什么?
您可以使用 convert 或 Cast
兑换:
Select
AssignedTo,
INSLA,
OUTSLA,
CONVERT(VARCHAR(50), CAST(((1-(OUTSLA/INSLA))*100) as int))+ '%' as Percentage
FROM SLATABLE
投掷:
Select
AssignedTo,
INSLA,
OUTSLA,
CAST(CAST((1-(OUTSLA/INSLA))*100 as int) AS VARCHAR(50))+ '%' as Percentage
FROM SLATABLE