我是MS SQL新手,我很难获得正确的结果。我目前有一个表格,其中包含标题updateddate
(日期),addedby
(编号),operationid
(编号)和servicereqno
(编号),这些表格已从三个不同的表中选择。同一列中的事件之间的日期差异
operationid
是一个事件,servicereqno
是一个工作号码。我希望能够获得事件之间的时间差,然后一旦建立,就可以计算出平均值。
例如:
- OPID 512是在20:15 - servicereqno 1
- OPID 535是在21:23 - servicereqno 1
我的首要任务将是确定什么时间上的差异在于,确保它在同一个工作号码内。
非常感谢
这是现在我输入的语法,但它不工作:第一站现在是基于高亮显示的区域,它表示是一个'无效的对象名'我不明白为什么这是无效的,当它是对象名: – AJ1791
选择CHANGE.UPDATEDDATE,CHANGE.ADDEDBY,S_OPERATION.OPERATIONID,CHANGE.SERVICEREQid 从变更INNER JOIN CHANGE_H ON CHANGE.SERVICEREQNO = CHANGE_H.SERVICEREQNO INNER JOIN S_OPERATION ON CHANGE_H.OPERATIONID = S_OPERATION.OPERATIONID WHERE(S_OPERATION。 OPERATIONID = 102005212)或 (S_OPERATION.OPERATIONID = 102005218)或 (s_operation.operationid = 102005406)或(s_operation.operationid = 102005401)或 (s_operation.operationid = 102005215); WITH cteOps AS( – AJ1791
SELECT row_number()OVER(PARTITION BY change.servicereqno ORDER BY change.updateddate)seqid,change.updateddate,change.servicereqno FROM ** CHANGE.updateddate,change.addedby,s_operation.operationid,change.servicereqno) ** SELECT DATEDIFF(毫秒,o1.updateddate,o2.updateddate)updateddatediff,servicereqno FROM cteOps o1 JOIN cteOps o2 ON o1.seqid = o2.seqid + 1 AND o1.servicereqno = o2.servicereqno; – AJ1791