创建图表,其中数据集的列是类别 - Report Builder 3.0

Create chart where the columns of the data set are the categories - Report Builder 3.0

我有一个非常简单的图表,我想添加它,但我一辈子都弄不明白。该图表引用的数据集 returns 是这样的数据。它正在计算每个 Location 的总和,然后使用 Rollup 为每个 Week Column

生成一个 Total Count
Location     CurrentWeek    PreviousWeek     2WeeksAgo
========     ===========    ===========      ===========        

North             5               6               3
South             4               3               1
East              8               2               3
West              2               7               0
Total             19              18              7

我想要做的是让 X 轴(水平)由 CurrentWeek、PreviousWeek、2WeeksAgo 列表示,并绘制每个列的 "Total" 值。

正在添加截图... Sample Chart

感谢您添加图像。

所以我们有几个步骤可以到达我们需要的地方 - 首先,我们需要将数据转换成一种更容易和更具可扩展性的格式(如果我们添加“3 周前”专栏,我们不想返工)。所需格式为:

   Date           Amount
Current Week        19
1 week ago          18 
2 weeks ago         17

就我个人而言 - 我不会命名 "current week"、“1 周前”等,而是会有一个 WeeksPrior 列,其中 0 表示当前周,1 表示一周前,等等。

无论如何,要从您的示例 table 获得更标准化的输入,我们必须使用逆轴(这些总是伤害我的大脑,但文档中有一些您可以使用的好示例)。

SELECT
    *
    , ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS Ordinal 
    --this is hacky, but ordering by (select null) allows us to assign a row number by the default order
FROM (SELECT 'Total' AS Location, 19 AS CurrentWeek, 18 AS PreviousWeek, 7 AS [2WeeksAgo]) x 
--This is the test data, replace this with your actual query
UNPIVOT (Value FOR Date IN ([CurrentWeek], [PreviousWeek], [2WeeksAgo])) y 
--This unpivots the test data, converting the separate columns into a single [Date] column, and assigning the values to the [Value] column.

这将吐出以下内容:

Location  Value     Date       Ordinal
 Total     19    CurrentWeek      1
 Total     18    PreviousWeek     2
 Total     7     2WeeksAgo        3

从这里开始,我们将数据添加到图表中。这很简单,但有一些 "gotchas" 需要注意。

首先,我们将添加 Value 列作为图表值,添加 Ordinal 列作为类别组。

让我们通过 运行 报告看看图表现在的样子。

好吧,它到了那里,但我们希望我们的标签在底部。为此,我们进入 Ordinal 类别组的属性并将标签切换到 date 列。确保你仍然按 Ordinal 排序,因为 SSRS 不知道“1 周前”相对于 "Current Week" 是什么意思,如果你不告诉它排序,它将按字母顺序或随机排序按顺序排列。

我们还可以通过删除图例并将水平轴上的主要刻度线样式更改为 "solid" 来稍微清理一下图表,留下如下所示的内容:

向垂直轴添加标签可能也有助于提高可读性,就像向图表上的点添加悬停文本一样。