如何 select 数据集中的最新年份?
How to select the latest year in the dataset?
我有一个包含 3 年数据的数据集,我只想要 tablix 数据集中的最新年份,在本例中为 2019 年。
在这种情况下,我只想统计(计算)2019 年按年级发生的事件 ID 的数量。
数据集:
想要的结果:
- 计算事件 ID(它们是唯一的)是计算总和的最佳方法吗?
- 我可以通过哪些方式在 SSRS 中获得预期的结果?
我不确定我是要过滤组属性并尝试执行最大日期,还是使用其他功能。每年数据集都会添加一个新的年份,年份不是硬编码的。
谢谢。
您可以使用这样的表达式来获得条件计数:
=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))
我有一个包含 3 年数据的数据集,我只想要 tablix 数据集中的最新年份,在本例中为 2019 年。
在这种情况下,我只想统计(计算)2019 年按年级发生的事件 ID 的数量。
数据集:
想要的结果:
- 计算事件 ID(它们是唯一的)是计算总和的最佳方法吗?
- 我可以通过哪些方式在 SSRS 中获得预期的结果?
我不确定我是要过滤组属性并尝试执行最大日期,还是使用其他功能。每年数据集都会添加一个新的年份,年份不是硬编码的。
谢谢。
您可以使用这样的表达式来获得条件计数:
=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))