我正在尝试在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 条件,即:
类型为"发票"的值的总和 - 类型为"贷项通知单"的值的总和
我为此创建了 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)
但它给了我这个错误:
用于计算提交的发票总和的表达式包括一个 聚合、行数、运行值、上一个或查找函数。 聚合、行数、运行值、上一个和查找函数 不能在计算字段表达式中使用。
有人可以帮我吗?
谢谢
您可以将 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
)
)