594
社区成员
发帖
与我相关
我的任务
分享
SELECT DISTINCT PrI.ProcessInstanceID,ProcessInstanceCreater,ProcessName,LEFT(PrI.ProcessInstanceDesc,20)
AS ProcessInstanceDesc,PrI.ProcessInstanceStatus,PrI.Deadline AS DeadLine,
ProcessInstanceInitialTime,
DelayType=CASE WHEN PrI.ASAPTime>GETDATE() THEN '0'
WHEN PrI.ASAPTime<=GETDATE() AND PrI.DueTime>GETDATE() THEN '1'
WHEN PrI.DueTime<=GETDATE() AND PrI.DeadLine>GETDATE() THEN '2'
WHEN PrI.DeadLine<=GETDATE() THEN '3' END,
DateDiff(ss,getdate(),PrI.deadline) AS RemainTime
FROM ProcessInstance PrI(nolock),Process P(nolock),ActivityInstance AI(nolock),Organization_User OU(nolock)
WHERE PrI.ProcessID=P.ProcessID AND PrI.Version=P.Version
AND PrI.ProcessInstanceID=AI.ProcessInstanceID AND AI.UserID=OU.UserID
--and exists (Select AI.OrganizationID From Organization(nolock) where Parentorganizationid=3)
AND OU.OrganizationID in (3,58,5,6,8,71)
AND AI.ActivityInstanceStatus!='C' AND AI.ActivityInstanceStatus!='T'
--问题是数据量大的时候因为distinct比较慢,有没有好的优化方案SQl