表如下:
Id IdType Content Table EndDateTime
--------------------------------------------------------------------------------
1 PID FYTD DB 2013/5/25 7:10
2 PID FYTD DBD 2013/5/25 7:10
3 FI MT MGT 2013/5/25 7:10
4 PID DMRI TRI 2013/5/25 7:10
5 PID DMRI HTR 2013/5/25 7:10
6 PID DMRI HTOR 2013/5/25 7:11
7 PID PRI TRI 2013/5/25 7:11
8 PID NZPRI TRI 2013/5/25 7:11
9 PID DRI TRI 2013/5/25 7:11
10 PID NZRI TRI 2013/5/25 7:11
11 CI ER HER 2013/5/25 7:11
12 CI ER ERFF 2013/5/25 7:12
13 CI ER CR 2013/5/25 7:12
14 CI ER TRC 2013/5/25 7:12
15 DI DT DMT 2013/5/25 7:12
16 DI DT AR 2013/5/25 7:12
17 DI DT DA 2013/5/25 7:12
18 DI DT DSC 2013/5/25 7:12
19 DI DT KSC 2013/5/25 7:12
20 DI DT FRC 2013/5/25 7:12
21 DI DT ERC 2013/5/25 7:12
22 DI DT LICC 2013/5/25 7:32
23 DI DT LFM 2013/5/25 7:33
24 DI DT LAC 2013/5/25 7:33
25 PID PPC PB 2013/5/25 7:34
26 IPI SI SIH 2013/5/25 7:34
27 PID TD DB 2013/5/25 7:34
28 PID MPF TWS 2013/5/25 7:34
29 PID MPF MR 2013/5/25 7:34
30 PID MP MPC 2013/5/25 7:34
--------------------------------------------------------
其中ID是自动增加的,IdType和Content相同的时候代表一个存储过程,Table代表在这个存储过程中用到的表,EndDateTime代表这个存储过程跑的结束时间.
同一个存储过程会对不同的表操作.不用管它.比如Id=1和2的时候是同一个存储过程操作了两个表.
求一个SQL语句查出哪个存储过程跑的时间长(时间超过10分钟的)? 比如上面的Id=22的这个存储过程跑了20分钟.
把这个Id=22 and IdType='DI' and Content='DT' and Table='LICC' 记录挑出来.
不要用游标的SQL语句来实现.
怎么计算哪个存储过程运行时间长?
------解决方案--------------------
try this,
select b.*
from [表名] a
left join [表名] b on a.Id=b.Id+1
where datediff(mi,b.EndDateTime,a.EndDateTime)>=10