如何按 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
个值,因此我的数据集仅包含 Percentage
和 MonthYear
。
但我只需要可视化最近 10 个月的数据。到目前为止,我所做的是创建了另一个名为 DateSource
的数据集,其中包含 Date
和 MonthYear
并过滤了行,以便我获得过去 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()))
, ",")
我在分页的 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
个值,因此我的数据集仅包含 Percentage
和 MonthYear
。
但我只需要可视化最近 10 个月的数据。到目前为止,我所做的是创建了另一个名为 DateSource
的数据集,其中包含 Date
和 MonthYear
并过滤了行,以便我获得过去 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()))
, ",")