[英]Create chart where the columns of the data set are the categories - Report Builder 3.0
我想添加一个非常简单的图表,但我一生无法解决。 图表引用了返回这样的数据的数据集。 它正在计算每个位置的总和,然后使用汇总来为每个“星期”列产生总计数
Location CurrentWeek PreviousWeek 2WeeksAgo
======== =========== =========== ===========
North 5 6 3
South 4 3 1
East 8 2 3
West 2 7 0
Total 19 18 7
我想要做的是让CurrentWeek,PreviousWeek,2WeeksAgo列表示X轴(水平),并绘制每个相应列的“总计”值。
添加片段... 示例图
感谢您添加图片。
因此,我们有几个步骤可以到达需要的位置-首先,我们需要将数据转换为更易于使用和扩展的格式(如果我们添加了“ 3周前”列,我们不会不想重做所有事情)。 所需的格式为:
Date Amount
Current Week 19
1 week ago 18
2 weeks ago 17
我个人而言,而不是将东西命名为“当前星期”,“ 1星期前”等,我将有一个WeeksPrior
列,其中0表示当前星期,1表示一周之前,依此类推。
无论如何,要从示例表中获取更标准化的输入,我们必须使用unpivot(它们总是会伤到我的大脑,但是文档中有一些很好的示例可供您使用)。
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
从这里,我们将数据添加到图表中。 这很简单,但是要注意一些“陷阱”。
首先,我们将“ Value
列添加为图表值,并将“ Ordinal
列添加为类别组。
好的,它到达了,但我们希望标签位于底部。 为此,我们进入Ordinal
类别组的属性,然后将标签切换到date
列。 确保您仍然按Ordinal
排序,因为SSRS不知道“ 1周前”相对于“当前周”的含义,如果不告诉您Ordinal
排序,则会按字母或随机排序。
我们还可以通过删除图例并在水平轴上将主要刻度线样式更改为“实心”来稍微整理一下图表,从而使我们看起来像这样:
在垂直轴上添加标签也可能会提高可读性,就像将悬停文本添加到图表上的点一样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.