2017-09-27 34 views
0

我試圖創建一個查詢,每次在上次爲同一件設備創建任務後的7天內添加任務時進行計數。SQL:對彼此接近的條目進行計數

我們有服務請求,可以有多個服務任務。每個任務可以有一個服務設備連接到它。

下面是我到目前爲止的代碼。我的結果最終計算了所有服務任務減去一個,而不是前一個任務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

歡迎來到[so],對於'sql'相關問題,請說明您正在使用的DBMS(sql server,oracle ...等)。並請提供表格結構,樣本數據和預期結果。 – Prisoner

回答

0

你要找的是DATEDIFF 功能。來自MSDN的示例:

+1

你怎麼知道OP是使用支持該產品特定功能的dbms? – jarlh