如何按 SSRS 折线图中的另一列对类别组进行排序?

How to sort category group by another column in SSRS line chart?

我在分页的 SSRS 报告中创建折线图,我的数据由三列组成,看起来像这样:

Date       |   MonthYear   |   Percentage
20.09.2018 |   Sep 2018    |   29.8
29.09.2018 |   Sep 2018    |   87.5
30.01.2019 |   Jan 2019    |   18.3

为了创建折线图,我每月需要 Percentage 个值,因此我的数据集仅包含 PercentageMonthYear

但我只需要可视化最近 10 个月的数据。到目前为止,我所做的是创建了另一个名为 DateSource 的数据集,其中包含 DateMonthYear 并过滤了行,以便我获得过去 10 个月的数据。

在我的折线图的类别组中,我正在获取数据 =Lookup(Fields!MonthYear.Value, Fields!MonthYear.Value, Fields!MonthYear.Value, "DateSoure")。这是我的图表的样子。

我想知道如何编写查找查询以仅获取那些对应 MonthYear 存在的数据点。或者是否有更好的方法来查看最近 10 个月的数据。

我是 SSRS 的新手,非常感谢您的帮助。

How can I filter the rows to get data for the last 10 months but get percentage only as if I were aggregating on MonthYear? So far my Category Group Properties include the following group expression:

我建议在数据集查询中进行聚合,这样 Group by [MonthYear] 会在报告外得到处理,因为报告已经处理过数据,当您应用过滤器时,月聚合不会受到影响,因为处理后的数据每月一行。

如果报告中有其他元素需要按日期显示的数据,那么您可以创建不显示 group by 且每个日期一行的新数据集。

P.S:如果在数据集中进行聚合需要任何帮助,您可以 post 您的数据集查询部分问题。

添加额外数据集的截图参考:

我通过解决方法解决了这个问题。在原始数据集中,我使用 IN 运算符过滤了行,并检查 MonthYear 是否是过去 10 个月的行。我使用了 Split 方法:

在下面的代码片段中,我连接了两个字符串,一个包含月份的名称,另一个包含相应的年份。然后检查 MonthYear 是否存在 IN 这些值中的任何一个。

=Split(
    StrConv(Format(DateAdd("M",-1,Now()),"MMM"), VbStrConv.ProperCase) & " " & Year(DateAdd("M",-1,Now())) 
    & "," & 
    StrConv(Format(DateAdd("M",-2,Now()),"MMM"), VbStrConv.ProperCase) & " " & Year(DateAdd("M",-2,Now())) 
    ...
    StrConv(Format(DateAdd("M",-10,Now()),"MMM"), VbStrConv.ProperCase) & " " & Year(DateAdd("M",-10,Now()))
    , ",")