Sql server 2012 SQL Server报表生成器总和(如果有)

Sql server 2012 SQL Server报表生成器总和(如果有),sql-server-2012,reporting,Sql Server 2012,Reporting,我有一个显示各种数据的表格,我希望它能够计算出总数增加的百分比,例如: 总共是1000英镑 加价总额为1500英镑 =SUM(Fields!Total.Value - Fields!TotalAfterMarkup.Value) / (Fields!TotalAfterMarkup.Value) 上面的代码计算的百分比为-50%,这是不正确的,但我可以计算出来。现在我想把这个语句放到SUM IF语句中。目前,如果TotalAfterMarkup0,SUM(Fields!To

我有一个显示各种数据的表格,我希望它能够计算出总数增加的百分比,例如: 总共是1000英镑 加价总额为1500英镑

=SUM(Fields!Total.Value -  
Fields!TotalAfterMarkup.Value) /       
(Fields!TotalAfterMarkup.Value) 
上面的代码计算的百分比为-50%,这是不正确的,但我可以计算出来。现在我想把这个语句放到SUM IF语句中。目前,如果TotalAfterMarkup<1,我会得到#错误,因此我需要

IF TotalAfterMarkup.Value >0 THEN

=SUM(Fields!Total.Value -  
Fields!TotalAfterMarkup.Value) /       
(Fields!TotalAfterMarkup.Value) 

ELSE 0.00%

这是可能的,谢谢大家的帮助。不幸的是,我没有足够的代表发表评论,否则我不会将此作为回答。真的,我需要更多的信息。您是作为报表生成器中的表达式还是作为数据集的一部分执行此操作

如果它是数据集的一部分,那么我建议使用
case
语句

case
when TotalAfterMarkup.Value >0
then SUM(Fields!Total.Value -  
   Fields!TotalAfterMarkup.Value) /       
  (Fields!TotalAfterMarkup.Value) 
else '0.00%'
end [MyFieldName]
使用IIF语句:(“数据集=您的数据集名称”)


我认为这应该奏效:

=IIF(TotalAfterMarkup.Value > 0,(SUM(Fields!Total.Value -  
Fields!TotalAfterMarkup.Value)/(Fields!TotalAfterMarkup.Value)),0)
IIF函数用于评估SSR中的条件:


我是作为文本框中的表达式来执行此操作的,字段(TotalAfterMarkup,Total)包含在数据集中,并根据需要将数据集名称添加到表达式中的值进行计算。我已经测试过了,它对我来说很有用。对不起,这是一个新手,几个小时前开始使用它,但是我还是没有运气=IIF(Fields!TotalAfterMarkup.Value,“CostTable”>0,SUM(Fields!TotalCost.Value,“CostTable”-Fields!TotalAfterMarkup.Value,“CostTable”)/(Fields!TotalAfterMarkup.Value,“CostTable”),“0.00%”=IIF(Fields!TotalAfterMarkup.Value,“CostTable”)>0,总和(Fields!TotalCost.Value,“CostTable”)-(Fields!TotalAfterMarkup.Value,“CostTable”)/(Fields!TotalAfterMarkup.Value,“CostTable”),“0.00%”我完全理解您编写的代码的作用,但它不起作用,而且应该是:|这是我从上述语句中得到的错误代码:textrun“Textbox224.段落[0]”的值表达式包含错误:[BC30455]参数未为“公共函数IIf”的参数“FalsePart”指定(表达式为布尔值,TruePart为对象,FalsePart为对象)为对象“”。注意:我不需要SQL Server代码,我正在使用Microsoft SQL Server Report Builder 3.0,正在尝试计算表达式:)
=IIF(TotalAfterMarkup.Value > 0,(SUM(Fields!Total.Value -  
Fields!TotalAfterMarkup.Value)/(Fields!TotalAfterMarkup.Value)),0)