Reporting services 需要在字段表达式窗口中从SSRS SSDT报告计算中排除零值
我的生产率计算为TotalMinutes/(TotalHours*60) 我的一些TotalHours值=0,我需要将它们从计算中排除 如何在字段表达式窗口中写入它 我现在的表达是 (我还在该字段中将零设置为“99”值):Reporting services 需要在字段表达式窗口中从SSRS SSDT报告计算中排除零值,reporting-services,sql-server-data-tools,ssrs-tablix,Reporting Services,Sql Server Data Tools,Ssrs Tablix,我的生产率计算为TotalMinutes/(TotalHours*60) 我的一些TotalHours值=0,我需要将它们从计算中排除 如何在字段表达式窗口中写入它 我现在的表达是 (我还在该字段中将零设置为“99”值): 感谢您的帮助这未经测试,但应该可以正常工作 问题是,即使从未使用过一个表达式,IIF也会对这两个表达式求值,因此为了避免被零除,我们需要将潜在的0替换为1。这不会影响结果,因为它永远不会用作最终输出 =SUM( IIF(Fields!TotalHours.Value=0,99
感谢您的帮助这未经测试,但应该可以正常工作 问题是,即使从未使用过一个表达式,IIF也会对这两个表达式求值,因此为了避免被零除,我们需要将潜在的0替换为1。这不会影响结果,因为它永远不会用作最终输出
=SUM(
IIF(Fields!TotalHours.Value=0,99
, IIF(Fields!TotalHours.Value=0,0, Fields!TotalMinutes.Value)
/ IIF(Fields!TotalHours.Value=0, 1, Fields!TotalHours.Value * 60)
)
)
所以这里发生的事情是,如果TotalHours为零,我们在外部IIF的假部分做0/1,只是为了满足IIF声明(它永远不会被实际使用)这有效吗=总和(IIf(字段!TotalHours.Value=0,0,字段!TotalMinutes.Value/(字段!TotalHours.Value*60)))
=SUM(
IIF(Fields!TotalHours.Value=0,99
, IIF(Fields!TotalHours.Value=0,0, Fields!TotalMinutes.Value)
/ IIF(Fields!TotalHours.Value=0, 1, Fields!TotalHours.Value * 60)
)
)