У меня есть запрос, который должен вернуть сумму для записей о статусе. Продолжительность вычисляется с использованием datediff (n, datetamp, (подзапрос, который возвращает метку даты, заканчивающую текущее состояние, то есть находит следующую подходящую запись «изменение статуса» после того, что заблокирован в)
Моя проблема заключается в том, что следующий запрос возвращает ошибку, состоящую из нескольких частей
- Таблица INC дает мне
"INCIDENT_NUMBER" я ищу, который связан с
«НОМЕР» в других таблицах
- ACTM1 содержит все записи DATESTAMP
- ACTA1 связан с ACTM1 через «THENUMBER» и содержит всю информацию о том, является ли запись подходящим изменением статуса или нет
Код:
SELECT SUM(DATEDIFF(n, ACTM1.DATESTAMP, END_DATESTAMP_TABLE.END_DATESTAMP))
FROM INC LEFT OUTER JOIN
ACTM1 ON INC.INCIDENT_NUMBER = ACTM1.NUMBER LEFT OUTER JOIN
ACTA1 ON ACTM1.THENUMBER = ACTA1.THENUMBER LEFT OUTER JOIN
/**/
(SELECT ACTM1_1.NUMBER, ACTM1_1.DATESTAMP AS END_DATESTAMP
FROM ACTM1 AS ACTM1_1 LEFT OUTER JOIN
/**/
(SELECT ACTM1_1_1.NUMBER, MIN(ACTM1_1_1.THENUMBER) AS FOLLOWUP_THENUMBER
FROM ACTM1 AS ACTM1_1_1
WHERE (ACTM1_1_1.THENUMBER > /**/ ACTM1_1.THENUMBER)/*I think here lies the problem*/
AND (ACTM1_1_1.[TYPE] IN ('Open', 'Status Change', 'Resolved', 'Closed')))
AS FOLLOWUP_THENUMBER_TABLE
/**/
ON ACTM1_1.NUMBER = FOLLOWUP_THENUMBER_TABLE.NUMBER)
AS END_DATESTAMP_TABLE
/**/
ON ACTM1.NUMBER = END_DATESTAMP_TABLE.NUMBER
WHERE ...
Буду признателен за любые полезные комментарии или подсказки, которые вы могли бы дать мне по этому поводу,
PS