Reporting services 在SSRS中添加一个简单的计算字段?

Reporting services 在SSRS中添加一个简单的计算字段?,reporting-services,dynamics-crm,ssrs-2012,ssrs-tablix,calculated-field,Reporting Services,Dynamics Crm,Ssrs 2012,Ssrs Tablix,Calculated Field,我正在尝试在SSRS中创建报告。我已经创建了一个简单的表报告,现在我需要在该表中添加一个计算字段。下面是我需要用来创建计算字段的两个字段 type value Credit Memo 3463 Invoice 2623 Invoice 3105 Invoice 3664 Invoice 2040 Credit Memo 2929 Credit Memo 2424 Invoice 2549 Invoice

我正在尝试在SSRS中创建报告。我已经创建了一个简单的表报告,现在我需要在该表中添加一个计算字段。下面是我需要用来创建计算字段的两个字段

type          value
Credit Memo   3463
Invoice       2623
Invoice       3105
Invoice       3664
Invoice       2040
Credit Memo   2929
Credit Memo   2424
Invoice       2549
Invoice       2129
Credit Memo   2957
我需要设置一个if条件,即:

具有发票类型的值之和-具有贷项凭证类型的值之和

我为此创建了两个计算字段,第一个是:

SumOfInvoice==iif(Fields!new_documenttypeValue.Value="Invoice",(Sum(Fields!invoicedetail1_extendedamountValue.Value)),0)
二是:

SumOfCreditMemo==iif(Fields!new_documenttypeValue.Value="Credit Memo",(Sum(Fields!invoicedetail1_extendedamountValue.Value)),0)
然后我在表中添加了一列,并编写了一个表达式:

=Sum(Fields!SumOfInvoice.Value)-Sum(Fields!SumOfCreditMemo.Value)
但这给了我一个错误:

用于计算语音的表达式包括 聚合、行数、运行值、上一个或查找函数。 聚合、RowNumber、RunningValue、Previous和lookup函数 不能在计算字段表达式中使用

有人能帮我吗


谢谢

您可以将IIF嵌套在SUM中

发票金额

=SUM(
Iif(Fields!new_documenttypeValue.Value="Invoice",Fields!invoicedetail1_extendedamountValue.Value,0)
)
信用备忘录也是如此

=SUM(  
Iif(Fields!new_documenttypeValue.Value="Credit Memo",Fields!invoicedetail1_extendedamountValue.Value,0)
)
发票-信用表达

= SUM(
Switch(
Fields!new_documenttypeValue.Value="Invoice", Fields!invoicedetail1_extendedamountValue.Value,
Fields!new_documenttypeValue.Value="Credit Memo",-Fields!invoicedetail1_extendedamountValue.Value,
True, 0
)
)
或者是一个更简单的选择,因为你只有发票和信用备忘录

=SUM( 
        IIF(
        Fields!new_documenttypeValue.Value="Credit Memo",
        -Fields!invoicedetail1_extendedamountValue.Value,
         Fields!invoicedetail1_extendedamountValue.Value
            )
        )

您不能将这些表达式放在数据集计算字段中,但可以将它们放在表的单元格中,它们应该可以正常工作。为了澄清表达式应该以=iif开头,您不需要在其中输入名称。我同意,尽管表达式有点笨拙,但您应该使用它们,而不是尝试创建临时变量。另外请注意,当您试图计算最终值时,您已经在创建临时变量时求和了值,所以每个温度变量的总和对我来说似乎是多余的…我现在直接在单元格中尝试这个表达式,它显示错误??有什么建议吗?也许尝试隔离Iif和总和,以确保组件正常工作。i、 伊菲尔德!新文档类型值。值=发票,1,0。还有,萨姆菲尔德!invoicedetail1\u extendedamountValue.Value