我有一个查询,可以根据所需的日期范围(参数)提供项目的每日状态。此状态会有所不同并且可能会重复。例如,它可以按时间顺序排列为:操作、维修、检查、操作、检查。正如您所看到的,操作和检查出现了两次,但时间不同。虽然这是事实,但我似乎无法在范围条形图中以图形方式表示这一点,因为它只会显示每种状态的一个实例(如图所示)。该图指示应在何处呈现剩余状态。
我正在使用的数据集如下:
如您所见,图表应按以下顺序表示 4 个状态:检查、运行、维修、运行,但不显示第二个运行状态。
任何人都可以帮助我克服这个特殊的障碍还是这是不可能的?
这应该为您指明正确的方向...这就是我可能会采取的方法。
您需要向数据集中添加额外的列。我将您的数据集复制到表变量中,然后使用以下内容获取附加列
-- 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"
)
(蓝线存在,以防万一我们缺少某种类型,它将在图表上显示为蓝色。)
希望这能给你足够的力量继续下去。
这个答案很棒,我构建了类似的东西来展示员工在日常轮班中的活动。我遇到的唯一问题是,当全天执行同一活动的多个实例时,图例就会重复。我已经查看了几个图例选项,但不知道如何限制图例以仅显示单个活动。