在条形图上显示连续事件

时间:2014-02-05 11:45:41

标签: reporting-services sql-server-2008-r2

我有一些数据代表了一堆连续的事件。对于此示例,它是24小时内机器的操作员:

StartDT              Operator    DurationSeconds
2004-02-01 22:00     Barry            6420
2004-02-01 23:47     Darren          18780
2014-02-02 05:00     Sharon          21600
2014-02-02 11:00     Gary            10800
2014-02-02 14:00     Barry           28800

以下是生成数据集的一些SQL:

SELECT 
CONVERT(DATETIME,'2014-02-01 22:00') As StartDT,
'Barry' As Operator,
6420 as SecondsDuration
UNION ALL
SELECT CONVERT(DATETIME,'2014-02-01 23:47'),
'Darren' As Operator,
18780 as Duration
UNION ALL
SELECT CONVERT(DATETIME,'2014-02-02 05:00'),
'Sharon' As Operator,
21600 as Duration
UNION ALL
SELECT CONVERT(DATETIME,'2014-02-02 11:00'),
'Gary' As Operator,
10800 as Duration
UNION ALL
SELECT CONVERT(DATETIME,'2014-02-02 14:00'),
'Barry' As Operator,
28800 as Duration

我在一个条形图上表示这一点,每个操作符都有不同颜色的条形图。

我将SUM(SecondsDuration)放在值/数据区域,条形图最多可堆叠24小时。我把操作员放在系列部分,然后通过StartDT订购它并做一些条件格式化,我可以看到24小时分成操作符。

这给了我想要的条形图。

但是,值轴给出了总秒数,即从0到86400(24小时,以秒为单位)

有没有办法将这些标签更改为每小时一桶,即22:00,23:00,00:00,01:00至21:00

我已经搞砸了一下,我认为这不可能。

我会对任何相对简单的解决方案感到满意,包括SQL的扩展

目前我的解决方法是在下面创建一个Tablix并将其全部排列。不漂亮。

还有一些更为复杂的方面,我将提出另一个问题。

1 个答案:

答案 0 :(得分:1)

我会使用类似于以下的表达式作为系列值将其转换为小时:

= Sum(Fields!SecondsDuration.Value)/ 3600

然后我将Axis Number Format设置为00':00'

然后我将Axis间隔设置为1(如果你想看每小时)。