如何判断技术人员是否修改了服务工单的起止时间?
需求:编写关联CallID的SQL子查询判断技术人员是否修改工单时间
需求背景与规则
我被这个需求困扰许久,代码历经多次迭代。需要编写可关联CallID的SQL子查询,判断技术人员是否修改服务工单的StartTime与EndTime,返回TRUE或FALSE结果。规则如下:
- 技术人员通过HEM6表中
roleID=-2识别 - 仅对比技术人员的时间记录与其之前最后一条非技术人员设置的起止时间,若存在修改则返回TRUE
- 无技术人员操作记录或未修改时返回FALSE
示例说明:用户ID60为非技术人员,用户ID29为技术人员,日志实例10中29修改了60在日志实例7设置的时间,应返回TRUE。
原查询语句
SELECT T1.StartTime AS [Current start time], T1.endTime AS 'Current End Time', T2.LogInstanc, T2.usersign2 FROM ASC6 T1 INNER JOIN ASCL T2 ON T2.LogInstanc = T1.[logInstanc] AND T2.callID = T1.SrcvCallID INNER JOIN OUSR T3 ON T3.INTERNAL_K = T2.usersign2 INNER JOIN OHEM T4 ON T4.userid = T3.userid LEFT JOIN HEM6 T5 ON T5.empID = T4.empID WHERE T1.srcvcallID = 25557
查询结果表格
| Start Time | End Time | Log Instance | Updating User |
|---|---|---|---|
| 8:54 | 9:09 | 2 | 1 |
| 15:30 | 16:00 | 3 | 60 |
| 15:30 | 16:00 | 4 | 60 |
| 15:30 | 16:30 | 5 | 60 |
| 15:30 | 17:00 | 6 | 60 |
| 15:30 | 16:30 | 7 | 60 |
| 15:30 | 16:30 | 8 | 29 |
| 15:30 | 16:30 | 9 | 29 |
| 15:45 | 16:45 | 10 | 29 |
| 15:45 | 16:45 | 11 | 29 |
| 15:45 | 16:45 | 12 | 60 |
内容的提问来源于stack exchange,提问作者Nick Jones
相关产品推荐
相关产品推荐

