SSRS textrun在外部聚合中使用第一个聚合(不同的数据集)

时间:2019-06-24 19:22:45

标签: dataset ssrs-2008

好的,我正在处理一个多数据报表,该报表合并了许多服务器中的数据。
dataset1 =具有我需要的数据的六个数据集之一。

ds_BusinessDays =具有特定日期和数字的日历表数据集,该日期和数字每天/每周/每月都会更改。

我正在尝试使用SWITCH,其中数据集1中的MonthName(Date)= ds_BusinessDays中的MonthName(Date2)。然后求和总数。

我已成功使用类似的交叉数据集计算,例如 SUM(当数据=“ Product”然后为1时切换)/ SUM(businessdaysinmonth,“ ds_BusinessDays”) 这是为了获得平均值。奇迹般有效。

=SUM(
    SWITCH(Fields!Requested_Month.Value = MonthName(Month(First(Fields!PreviousBusinessDate.Value, "ds_BusinessDays")))
    ,1)
)

ds_BusinessDays数据集中的所有字段均为1输入结果。例如,“ PreviousBusinessDay” =“ 6/21/2019”。所以我想我的代码做这样的事情。 当ds_BusinessDays中的MonthName(Date)表单dataset1 = MonthName(PreviousBusinessDate)时,则1.将所有这些加起来即可得出该月的总数。 问题在于,当使用另一个数据集中的字段时,FIRST和SUM是对我唯一可用的字段。不能在聚合中的聚合中使用它们。

我可以使用“ First in First”(字段!PreviousBusinessDate.Value,“ ds_BusinessDays”)中的替代项吗?

1 个答案:

答案 0 :(得分:0)

当您只有一个条件时为什么使用barPtr?我认为SWITCH更容易阅读。另外,如果IIF是一个条目,那么为什么甚至需要ds_BusinessDays.PreviousBusinessDate?结果应该只有一个。如果您要尝试执行我认为要执行的操作,则此表达式应该可以执行。

FIRST

要添加更多详细信息,= SUM(IIF(Fields!Requested_Month.Value = MonthName(Month(Fields!PreviousBusinessDate.Value, "ds_BusinessDays")), 1, 0)) 最好用于2个以上的条件语句。如果只想比较两个字段,则可以使用简单的SWITCH。何时需要IIF的示例:

SWITCH

此表达式将针对三个不同的字段检查 =SUM(SWITCH(Fields!Date.Value = Fields!Today.Value, 1, Fields!Date.Value = Fields!Yesterday.Value, 2, Fields!Date.Value = Fields!Tomorrow.Value, 3, true, 0)) ,并为每个字段返回不同的计数,以始终为true的条件结尾,该条件捕获其他所有内容。您的表情不需要Date