我有一个包含 4 个字段(日期、安全名称、文件名称、值(的数据集。在我的数据集查询中,我过滤数据以仅显示归档名称(Last Price(中具有特定值的记录。以下是我的数据集示例
Date SecurityName FiledName Value
5/5/2016 A LastPrice 20.01
5/6/2016 A LastPrice 19.8
5/7/2016 A LastPrice 19.9
5/5/2016 B LastPrice 43.1
5/6/2016 B LastPrice 43.5
5/7/2016 B LastPrice 43.7
在此数据集中,我拥有过去 5 年每个工作日的每个证券的数据。在我的报告中,我需要在表格中显示 安全名称 ,最后一个值,一个月前的值,一年前的值和三年前的值
Security name LastPrice 1M 1Year 3Years
A 20.1 18.8 19.01 16.05
如果有人能给我构建这种格式的最佳方法,我将不胜感激。
我会根据安全名称对您的表进行分组。这将在同一行上聚合具有相同安全名称的所有记录。
然后,对于每个日期/值列,创建一个 IIF 语句以筛选所需的日期:
=MAX(IIF(Fields!Date.Value = Parameters!LastDate.Value, Fields!Value.Value, NOTHING))
上个月(和其他日期(将类似:
=MAX(IIF(Fields!Date.Value = DATEADD("M", -1, Parameters!LastDate.Value), Fields!Value.Value, NOTHING))
MAX 用于将 NOTHINGS 与值聚合。
我认为最好将最后日期作为参数(默认为昨天?(,以便更轻松地创建表达式,并且如果需要,您还可以查看过去的日期。