SQL:计算彼此接近的条目时间

时间:2017-09-27 03:46:21

标签: sql date compare

我试图创建一个查询,每次在上一次为同一台设备创建任务的7天内添加任务时都会计算。

我们有可以拥有多项服务任务的服务请求。每项任务都可以有一个与之相关的服务设备。

这是我到目前为止所拥有的代码。我的结果最终将所有服务任务减去一个,而不仅仅是在上一个任务的7天内完成的任务,我不知道为什么。关于我做错什么的任何想法?

SELECT c.CustomerID, 
e.strSerialNumber, 
COUNT(r2.dtmServiceRequestStartDate) 
as 'Call-Backs'

FROM tblServiceRequest r2
LEFT OUTER JOIN tblServiceTask t2
ON r2.lngServiceRequestID = t2.lngServiceRequestID
LEFT OUTER JOIN tblServiceEquipment e
ON e.lngSEID = t2.lngSEID
INNER JOIN tblCustomers c
ON r2.strShipTo = c.CustomerID

WHERE r2.dtmServiceRequestStartDate < (
 SELECT MAX(r.dtmServiceRequestStartDate)
 FROM tblServiceRequest r
 LEFT OUTER JOIN tblServiceTask t
 ON r.lngServiceRequestID = t.lngServiceRequestID
 WHERE r.dtmServiceRequestStartDate < (
  SELECT MAX(dtmServiceRequestStartDate) 
  FROM tblServiceRequest r1 
  LEFT OUTER JOIN tblservicetask t1 
  ON r1.lngServiceRequestID = t1.lngServiceRequestID 
  WHERE t.lngSEID = t1.lngSEID)
) + 7
AND t2.lngSEID IS NOT NULL
AND c.Active = 1
GROUP BY c.CustomerID, e.strSerialNumber

1 个答案:

答案 0 :(得分:0)

您要找的是DATEDIFF 功能。来自MSDN的示例:

USE AdventureWorks; GO SELECT DATEDIFF(day, OrderDate, GETDATE()) AS NumberOfDays FROM Sales.SalesOrderHeader; GO