【发布时间】:2020-07-28 04:25:57
【问题描述】:
我有两张表门票和任务。注册工单后,它会出现在工单表中,并且使用工单进行的每个操作都保存在任务表中。工单表包括诸如谁创建工单、开始和结束日期(如果已关闭)等信息。任务表如下所示:
ID Ticket_ID Task_type_ID Task_type Group_ID Submit_Date
1 120 1 Opened 3 2016-12-09 11:10:22.000
2 120 2 Assign 4 2016-12-09 12:10:22.000
3 120 3 Paused 4 2016-12-09 12:30:22.000
4 120 4 Unpause 4 2016-12-10 10:30:22.000
5 120 2 Assign 6 2016-12-12 10:30:22.000
6 120 2 Assign 7 2016-12-12 15:30:22.000
7 120 5 Modify NULL 2016-12-13 15:30:22.000
8 120 6 Closed NULL 2016-12-13 16:30:22.000
我想计算每个小组完成任务的时间。开始时间是工单分配给某个组的时间,结束时间是该组完成任务的时间(如果他们将其分配到其他地方或关闭它)。但它不应该包括暂停时间(task_type_ID 3 到 4)。此外,当工单分配给其他组时,新组 ID 会出现在前一个任务/行中。如果任务经过多个组,它应该计算票在每个组手中的时间。 我知道这很复杂,但也许有人有我可以开始构建的想法。
【问题讨论】:
标签: sql sql-server tsql date gaps-and-islands