在SSRS中添加简单的计算字段?

时间:2017-07-18 16:39:16

标签: 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       2129
Credit Memo   2957

我需要设置一个if条件:

类型为Invoice的值的总和 - 类型为Credit Memo的值的总和

我为此创建了2个计算字段,首先是:

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)

但它给了我这个错误:

  

用于计算的提交的SumOfInvoice的表达式包括   aggregate,RowNumber,Running Value,Previous或lookup函数。   Aggregate,RowNumber,RunningValue,Previous和lookup函数   不能用于计算字段表达式。

有人可以帮帮我吗?

由于

1 个答案:

答案 0 :(得分:0)

您可以在SUM

中嵌套IIF

发票总额

=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
            )
        )