如何 select 数据集中的最新年份?

How to select the latest year in the dataset?

我有一个包含 3 年数据的数据集,我只想要 tablix 数据集中的最新年份,在本例中为 2019 年。

在这种情况下,我只想统计(计算)2019 年按年级发生的事件 ID 的数量。

数据集:

想要的结果:

我不确定我是要过滤组属性并尝试执行最大日期,还是使用其他功能。每年数据集都会添加一个新的年份,年份不是硬编码的。

谢谢。

您可以使用这样的表达式来获得条件计数:

=Count(IIf(Fields!SchoolYear.Value = Max(Fields!SchoolYear.Value, "GradeRowGroup"), 1, Nothing))

这将检查每个组中的最大年份。您可以使用行组或整个数据集作为 Max 函数中的范围。 IIf 语句 returns 学年与最大值匹配的行的 1。然后 Count 简单地聚合这些。

我认为有两种实用的方法:

您可以将学年设为参数。如果您想(默认情况下)打开实际年份,您可以转到 学年 参数 右键单击​​ > 参数属性 > 默认值 > 指定值.应该是这样的:

[School Year].[Year].&[2018]

将上面的表达式改为:

="[学年].[年].&[" & CStr(Year(Now())) & "]"

这样你的报告默认打开时会显示实际的学年,你也可以选择其他学年来获取信息。在 tablix 中只需添加您的 Count()Sum() 以及您需要的所有其他内容。

或者您可以在您的 tablix 中添加一个过滤器(这更静态),例如:

'Expression
=Fields!SchoolYear.Value = Year(Now()) 'Integer
=Fields!SchoolYear.Value = CStr(Year(Now())) 'String
'Type
Boolean
'Value
True

一位同事帮我解决了这个问题。我正在使用数据栏来显示聚合,他说在图表数据上添加一个表达式,它起作用了。

=Sum(IIF(MAX(Fields!SchoolYear.Value)=Fields!SchoolYear.Value,Fields!NumDays.Value,0))