SSRS报告表达式设置

时间:2017-05-08 16:16:59

标签: ssrs-tablix

我有一个包含4个字段的数据集(Date,SeccurityName,FiledName,Value)。在我的数据集查询中,我过滤数据以仅在文件名(最后价格)中带来具有特定值的记录。以下是我的数据集

的示例
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

如果有人能给我最好的方法来构建这种格式,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我会将您的表分组到安全名称上。这将聚合同一行中具有相同安全名称的所有记录。

然后,对于每个日期/值列,创建 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与值聚合。

我认为最好将Last Date作为参数(默认值为昨天?),以便更容易创建表达式,如果有的话,您还可以查看过去的日期需要。