【问题标题】:SSRS: Range Bar Chart not displaying repeated status based on Date RangeSSRS:范围条形图不显示基于日期范围的重复状态
【发布时间】:2018-01-16 14:37:43
【问题描述】:

我有一个查询,它根据所需的日期范围(参数)为我提供项目的每日状态。这种状态会有所不同并且可以重复。例如,它可以按时间顺序为:操作、维修、检查、操作、检查。如您所见,操作和检查代表两次,但时间不同。虽然这是真的,但我似乎无法在范围条形图中以图形方式表示这一点,因为它只会显示每个状态的一个实例(如图所示)。图片指示应在何处显示剩余状态。

Range bar Chart Error

我正在使用的数据集如下:

Range bar Chart Error Data

如您所见,图表应按以下顺序表示 4 种状态:检查、运行、维修、运行,但不显示第二运行状态。

谁能帮助我克服这个特殊的障碍,或者这不可能吗?

【问题讨论】:

    标签: reporting-services charts stacked-chart stackedbarseries


    【解决方案1】:

    这应该为您指明正确的方向...这就是我可能会采用的方法。

    您需要向数据集添加额外的列。我将您的数据集复制到表变量中,然后使用以下内容获取附加列

    -- this just replicates your data..    
    DECLARE @t TABLE(StatusDate DATE, StatType varchar(20), statStart DateTime, statEnd DateTime, StatusDays int)
    
        INSERT INTO @t VALUES
        ('2017-02-16', 'Inspection', '2017-01-30 12:49:14', '2017-02-21 12:49:14', 22),
        ...
        ...
        ('2017-03-14', 'Operational', '2017-03-01 11:49:11', '2017-04-19 15:19:48', 49)
    
    -- the important bit    
        SELECT 
            *
            , DENSE_RANK() OVER(ORDER BY statStart) as Sort
         FROM @t
    

    这给了我们以下输出。

    我们可以使用 SSRS 中的这个额外字段对数据进行正确的分组和排序。

    然后我对图表系列颜色属性使用了以下表达式,以确保颜色与 statType 一致

    =SWITCH(
        Fields!StatType.Value = "Inspection", "Tan",
        Fields!StatType.Value = "Operational", "Green",
        Fields!StatType.Value = "Repair", "Red",
        True, "Blue"
        )
    

    (蓝线出现在我们缺少类型的情况下,它会在图表上显示为蓝色。)

    这给了我们..

    希望这能让你继续前进。

    【讨论】:

    • 谢谢艾伦!我要去试试这个。如果它按我的需要工作,那么我会回来确认并标记你的答案。
    • 谢谢!谢谢!您的解决方案(The Dense_Rank)解决了我的问题。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-25
    相关资源
    最近更新 更多