Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS 2008 R2计算序列(中值)忽略自定义格式_Reporting Services_Charts - Fatal编程技术网

Reporting services SSRS 2008 R2计算序列(中值)忽略自定义格式

Reporting services SSRS 2008 R2计算序列(中值)忽略自定义格式,reporting-services,charts,Reporting Services,Charts,我在VisualStudio中为SSRS2008R2创建了一个范围图,并在其中添加了一条中间线。但是,SSRS将乐于忽略我为此中线设置的任何格式,除非相同的范围格式设置设置为“无/自动”。因此,它将继承范围的颜色、标记和大小。供参考: 请注意,沿顶部很难看到与范围颜色相同的微弱、长的线条。我还添加了一条移动平均深蓝色线,以表明问题不仅仅在于使用计算的序列 在这里,我将范围设置为自动,这意味着线条采用我设置的红色,但仍然不采用所需的厚度。我将中间线设置为红色,以获得更好的对比度 这就是我想要实现的

我在VisualStudio中为SSRS2008R2创建了一个范围图,并在其中添加了一条中间线。但是,SSRS将乐于忽略我为此中线设置的任何格式,除非相同的范围格式设置设置为“无/自动”。因此,它将继承范围的颜色、标记和大小。供参考:

请注意,沿顶部很难看到与范围颜色相同的微弱、长的线条。我还添加了一条移动平均深蓝色线,以表明问题不仅仅在于使用计算的序列

在这里,我将范围设置为自动,这意味着线条采用我设置的红色,但仍然不采用所需的厚度。我将中间线设置为红色,以获得更好的对比度

这就是我想要实现的。不是所需的最终颜色/宽度,但这显示了设置和创建内容之间的差异


有没有办法让计算线停止继承范围的设置?我确实找到了,但上面列出的工作对我来说并不适用。如果没有,有没有一种方法可以用我自己的直线而不是计算出的序列来计算中值?

今天和我的老板谈话时,我需要的是平均值,而不是中值。这就是生活

但我已经找到了一个解决办法,让中位数成为图表中自己的一部分,这样它就不会与范围挂钩。我不认为这是答案,虽然它回答了我的第二个问题,因为它需要相当多的额外工作,但是如果有人必须在他们的范围图中位数和谷歌把他们带到这个问题,我认为共享这是值得的:

解决方案一简单模式 这只有在你不在乎这个系列的颜色时才有帮助

将范围的颜色设置为“自动”,然后将衍生/计算系列的颜色设置为所需的颜色。要更改衍生系列的边框和标记格式,请在基础范围内更改它们。范围图类型似乎忽略了这些属性,至少据我所知。请注意,将范围上的“边界样式”设置为“无”将阻止中间值显示,无论其他设置如何

解决方案二硬模式 这就是我在被告知使用AVG之前所做的工作。既然事情就是这样发展的,我基本上就完了

只得到中间值 首先,我从另一个问题中找到了一个好的、干净的方法来找到中间值。不幸的是,这不涉及任何类型的分组,所以我不得不扩展它。我首先将最初返回的数据放入一个临时表@t中。然后,我将查询更改为一个内部联接,子查询按需要分组,得到以下结果:

SELECT (BottomHalf+TopHalf)/2 as Median, B.PeriodRaw, B.WeekNumber FROM
    (SELECT MAX(Ratio) as BottomHalf, PeriodRaw, WeekNumber FROM
        (SELECT TOP 50 PERCENT Ratio, PeriodRaw, WeekNumber FROM @t ORDER BY Ratio) m
        GROUP BY PeriodRaw, WeekNumber) AS B
   INNER JOIN 
    (SELECT MIN(Ratio) as TopHalf, PeriodRaw, WeekNumber FROM
        (SELECT TOP 50 PERCENT Ratio, PeriodRaw, WeekNumber FROM @t ORDER BY Ratio DESC) n
        GROUP BY PeriodRaw, WeekNumber) AS T
将其转换为带范围的图表 然后,我必须结合使用Max/Min来获得一个可以在图表中使用的表:

SELECT (BottomHalf+TopHalf)/2 as Median, MaxRatio, MinRatio, B.PeriodRaw, B.WeekNumber FROM
    (SELECT MAX(Ratio) as BottomHalf, PeriodRaw, WeekNumber FROM
        (SELECT TOP 50 PERCENT Ratio, PeriodRaw, WeekNumber FROM @t ORDER BY Ratio) m
        GROUP BY PeriodRaw, WeekNumber) AS B
   INNER JOIN 
    (SELECT MIN(Ratio) as TopHalf, PeriodRaw, WeekNumber FROM
        (SELECT TOP 50 PERCENT Ratio, PeriodRaw, WeekNumber FROM @t ORDER BY Ratio DESC) n
        GROUP BY PeriodRaw, WeekNumber) AS T
    ON B.PeriodRaw = T.PeriodRaw AND B.WeekNumber = T.WeekNumber
    INNER JOIN 
    (SELECT MAX(Ratio) as MaxRatio, PeriodRaw, WeekNumber FROM @t GROUP BY PeriodRaw, WeekNumber) X
    ON B.PeriodRaw = X.PeriodRaw AND B.WeekNumber = X.WeekNumber
    INNER JOIN 
    (SELECT MIN(Ratio) as MinRatio, PeriodRaw, WeekNumber FROM @t GROUP BY PeriodRaw, WeekNumber) N
    ON B.PeriodRaw = N.PeriodRaw AND B.WeekNumber = N.WeekNumber
从这里开始很简单。像平常一样创建范围图,然后为中值添加一个新值。右键单击图表数据框中的系列或图表本身,无所谓,然后单击更改图表类型。从该列表中,选择您选择的行并点击OK。如果显示Y值,则可能必须将值数据更改回中值。就这样!现在,你有一个单独的行中值,所以你可以格式化它,你的心的内容

然而,这是一个非常好的解决方案,它还需要一个独立于原始数据集的数据集,除非您想进一步加入这两个数据集,因此如果您可以避免,我建议您使用它;而且,正如我所说的,它不是解决原始问题的方法,很可能是一个bug,因此可能永远不会有一个bug,除非它在以后的版本中得到修复