给定事件开始和结束时间的日期集,我想计算经过的持续时间。这些持续时间必须按照设备(类别)求和,并在它们出现的各个日期分布。
我有一个类似于下面显示的数据集。
使用以下SQL查询生成此数据集。
SELECT
EquipmentDetailsDataModel.EquipmentDetails.Equipment
,StoppagesDataModel.StoppagesEvent.PlannedDownTime
,StoppagesDataModel.StoppagesEvent.PlannedUpTime
FROM
StoppagesDataModel.StoppagesEvent
INNER JOIN EquipmentDetailsDataModel.EquipmentDetails
ON StoppagesDataModel.StoppagesEvent.EquipmentKey = EquipmentDetailsDataModel.EquipmentDetails.EquipmentKey
WHERE
EquipmentDetailsDataModel.EquipmentDetails.Equipment IN ('22262','21617')
AND StoppagesDataModel.StoppagesEvent.PlannedDownTime >= N'06/01/2016 00:00:00'
这基本上是一个设备将停机以进行维护的日期列表(通常称为事件)
我正在寻找类似于以下的输出。有些事件可以重叠,但设备每天只能停机24小时。
Equipment Date Down Hrs
22262 01/06/2016 5.5
22262 02/06/2016 4.1
22262 03/06/2016 1.2
22262 04/06/2016 0
22262 05/06/2016 9.4
22262 06/06/2016 15
22262 07/06/2016 24
22262 08/06/2016 15
22262 09/06/2016 10.8
22262 10/06/2016 0.25
22262 … etc … etc
21617 01/06/2016 3.0
21617 02/06/2016 5.2
21617 03/06/2016 1.7
21617 04/06/2016 0
21617 05/06/2016 9.4
21617 06/06/2016 15
21617 07/06/2016 23
21617 08/06/2016 0
21617 09/06/2016 16.8
21617 10/06/2016 0.25
21617 … etc … etc
… etc … etc … etc
我可以使用内置的系统表来返回查询的连续日期范围。
SELECT
SystemTableDataModel.ReportDate.[DATE]
FROM
SystemTableDataModel.ReportDate
WHERE
SystemTableDataModel.ReportDate.[DATE] >= N'05/01/2016 00:00:00'
AND SystemTableDataModel.ReportDate.[DATE] < N'06/01/2016 00:00:00'
这提供了一个可以使用的连续日期范围。
我正在努力开始研究如何编写此查询
答案 0 :(得分:0)
"appRoles": [
{
"allowedMemberTypes": [
"User"
],
"description": "Admins can manage roles and perform all actions.",
"displayName": "Global Admin",
"id": "7c93906c-71fa-4e5b-b1da-21b073d298fd",
"isEnabled": true,
"value": "Admin"
}
]
- 说实话,它并没有消除重叠,但是如果你能在一天内上下起伏,你就更近了
答案 1 :(得分:0)
@SuppressFBWarnings("JLM_JSR166_UTILCONCURRENT_MONITORENTER")