好的,我正在处理一个多数据报表,该报表合并了许多服务器中的数据。
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”)中的替代项吗?
答案 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
。