SSRS Report Builder 3.0 - 每个系列的平均StripLine

时间:2017-03-08 19:45:20

标签: reporting-services charts ssrs-2008 average reportbuilder3.0

我有一个运行图表,其中X轴是时间(分为13个周期,有点像几个月但随机日期),Y轴是入场人数,我的团队系列是财政年度。我需要一次显示2年,这意味着我的图表上显示的是2个系列,每年有13个周期。

目标:创建一个平均数量的广告"每年一行。

当前结果:

我进入了Y轴带状线属性,创建了2条带状线,并在" IntervalOffset"我写了以下内容,但它仍然给了我一条带有两年(一起)平均值的带状线,而不是两条不同的带状线,每条带有年份的平均值。

=IIF(Fields!Year.Value=2013, Avg(Fields!Admissions.Value), Nothing)

=IIF(Fields!Year.Value=2015, Avg(Fields!Admissions.Value), Nothing)

我当前的图表如下所示: enter image description here

注意:正如您在其旁边的表格中看到的那样,我的图形带状线只是对所有可用值的平均值,因此不是让Stripline1在91.23而Stripline2在81.85 ,我只有1条带状线显示+/- 87

我的数据集如下所示:

Year |  Period   |   Admissions

2015 |   01      |    35

2015 |   02      |    50

[...]

2015 |   12      |    43

2015 |   13      |    64

2013 |   01      |    61

2013 |   02      |    52

[...]

2013 |   12      |    45

2013 |   13      |    42

有什么想法吗?

P.S。我唯一的另一种选择(我可以提出)是创建2个单独的数据集,根据需要在每个数据集上放置过滤器,然后使用LookUp将其插入带状线?但在我看来,这似乎是一种矫枉过正。必须有一些东西,简单= /

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试在折线图的Values窗格中添加两个附加表达式。

2013年平均值:

=AVG(
IIF(Fields!Year.Value=2013,Fields!Admissions.Value,Nothing)
,"DataSetName")

2015年平均值:

=AVG(
IIF(Fields!Year.Value=2015,Fields!Admissions.Value,Nothing)
,"DataSetName")

DataSetName替换为数据集的实际名称。

答案 1 :(得分:0)

另一种选择是将数据集中的平均值计算为新列,然后将其添加为新系列。

这样的东西
SELECT [Year], [Period], [Admissions],
    AVG([Admissions]) OVER(PARTITION BY [Year]) AS [Avg]
  FROM [MyTable]

会给出这样的东西。

2015 | 01 | 35 | 48
2015 | 02 | 50 | 48
[...]
2015 | 12 | 43 | 48
2015 | 13 | 64 | 48
2013 | 01 | 61 | 50
2013 | 02 | 52 | 50
[...]
2013 | 12 | 45 | 50
2013 | 13 | 42 | 50