【发布时间】:2013-03-12 13:31:29
【问题描述】:
我有一个这样的表,其中包含如下数据
ReferenceNo CommentDate StepName Originator StartTime
1 CHQRCL/0083/2013/FEB 2013-02-25 15:20:07.000 Initiate Process P8Admin 2013-02-25 15:20:07.000
1 CHQRCL/0083/2013/FEB 2013-02-25 15:20:44.000 Finance Controller P8Admin 2013-02-25 15:20:07.000
1 CHQRCL/0083/2013/FEB 2013-02-25 15:21:52.000 Originator P8Admin 2013-02-25 15:20:07.000
1 CHQRCL/0083/2013/FEB 2013-02-25 15:23:26.000 Finance Controller P8Admin 2013-02-25 15:20:07.000
1 CHQRCL/0083/2013/FEB 2013-02-25 15:23:55.000 Finance Officer P8Admin 2013-02-25 15:20:07.000
2 CHQRCL/0089/2013/FEB 2013-02-25 15:43:48.000 Initiate Process P8Admin 2013-02-25 15:43:48.000
2 CHQRCL/0089/2013/FEB 2013-02-25 15:43:59.000 Finance Controller P8Admin 2013-02-25 15:43:48.000
2 CHQRCL/0089/2013/FEB 2013-02-25 15:44:11.000 Asset GM P8Admin 2013-02-25 15:43:48.000
3 CHQRCL/0093/2013/MAR 2013-03-06 16:19:05.000 Initiate Process P8Admin 2013-03-06 16:19:05.000
3 CHQRCL/0093/2013/MAR 2013-03-06 16:21:57.000 Finance Controller P8Admin 2013-03-06 16:19:05.000
3 CHQRCL/0093/2013/MAR 2013-03-06 16:23:55.000 Asset GM P8Admin 2013-03-06 16:19:05.000
3 CHQRCL/0093/2013/MAR 2013-03-06 16:24:09.000 CFO P8Admin 2013-03-06 16:19:05.000
3 CHQRCL/0093/2013/MAR 2013-03-06 16:24:19.000 CEO P8Admin 2013-03-06 16:19:05.000
3 CHQRCL/0093/2013/MAR 2013-03-06 16:24:40.000 Finance Officer P8Admin 2013-03-06 16:19:05.000
4 CHQRCL/0094/2013/MAR 2013-03-06 16:58:47.000 Initiate Process P8Admin 2013-03-06 16:58:47.000
4 CHQRCL/0094/2013/MAR 2013-03-06 17:00:45.000 Finance Controller P8Admin 2013-03-06 16:58:47.000
4 CHQRCL/0094/2013/MAR 2013-03-06 17:00:54.000 Asset GM P8Admin 2013-03-06 16:58:47.000
4 CHQRCL/0094/2013/MAR 2013-03-06 17:04:48.000 CFO P8Admin 2013-03-06 16:58:47.000
4 CHQRCL/0094/2013/MAR 2013-03-06 17:05:06.000 CEO P8Admin 2013-03-06 16:58:47.000
4 CHQRCL/0094/2013/MAR 2013-03-06 17:05:35.000 Finance Officer P8Admin 2013-03-06 16:58:47.000
5 CHQRCL/0108/MAR/2013 2013-03-10 08:58:22.000 Initiate Process Mohamed Ubaid 2013-03-10 08:58:22.000
5 CHQRCL/0108/MAR/2013 2013-03-10 09:06:23.000 Finance Controller Mohamed Ubaid 2013-03-10 08:58:22.000
5 CHQRCL/0108/MAR/2013 2013-03-10 09:07:06.000 Finance Officer Mohamed Ubaid 2013-03-10 08:58:22.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:26:10.000 Initiate Process Allan C Fampulme 2013-03-10 09:26:10.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:32:34.000 Finance Controller Allan C Fampulme 2013-03-10 09:26:10.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:33:22.000 Asset GM Allan C Fampulme 2013-03-10 09:26:10.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:35:39.000 Originator Allan C Fampulme 2013-03-10 09:26:10.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:36:06.000 Asset GM Allan C Fampulme 2013-03-10 09:26:10.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:36:20.000 CFO Allan C Fampulme 2013-03-10 09:26:10.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:36:41.000 CEO Allan C Fampulme 2013-03-10 09:26:10.000
6 CHQRCL/0110/MAR/2013 2013-03-10 09:37:34.000 Finance Officer Allan C Fampulme 2013-03-10 09:26:10.000
首先,我想要每个参考号的每个步骤所花费的时间(例如,对于参考号 1 的财务控制器,它需要 37 秒)。我想计算平均值(以相同的财务控制器步骤为例;1 refNo + 94 秒再次在 1refNo + 11 秒在 2refNo + 等中除以 6 需要 7 秒)
【问题讨论】:
-
我试过 WITH CTE AS( SELECT ROW_NUMBER()OVER(PARTITION BY ReferenceNo ORDER BY CommentDate)As RowNum , * FROM FNCUSTOM.dbo.WorkflowHistory T --where stepname != 'Initiate Process' ) SELECT DiffSec=DATEDIFF(s,CommentDate,(SELECT CommentDate FROM CTE c2 WHERE c2.ReferenceNo = CTE.ReferenceNo AND c2.RowNum=CTE.RowNum+1)) , ReferenceNo , StepName , CommentDate FROM CTE where referenceno='CHQRCL/0157 /MAR/2013' ORDER BY ReferenceNo, RowNum;
-
给出以下输出
-
DiffSec ReferenceNo StepName CommentDate 37 CHQRCL/0083/2013/FEB 启动过程 2013-02-25 15:20:07.000 68 CHQRCL/0083/2013/FEB 财务控制器 2013-02-25 15:20 :44.000 94 CHQRCL/0083/2013/FEB 发起人 2013-02-25 15:21:52.000 29 CHQRCL/0083/2013/FEB 财务总监 2013-02-25 15:23:26.000 NULL CHQRCL/0083/2013/FEB 财务官 2013-02-25 15:23:55.000
-
其中启动流程为 37 秒,而启动流程应为 NULL / 0,这 37 秒应用于下一步,即“财务控制器”
-
@JamieF 时差计算正确,但步骤名称错误。