Я пытаюсь создать несколько отчетов из необработанных данных в телефонной системе. Эта система имеет входящий вызов из нескольких мест, на которые может или не может быть дан ответ, и данные могут также иметь несколько строк между запросом вызова, ответом и зависанием. В конечном счете, я хотел бы строку с временем запроса на вызов, началом, окончанием (упрощенно ниже) для каждого вызова. Источник и пункт назначения также будут включены, но были исключены из упрощенного запроса
Я пытался создать номера строк и различные версии или ниже, в надежде создать одну строку, но при изменении номеров строк в соединении у меня возникают проблемы с преодолением. [END] .RowNumber = (START.RowNumber-1)
WITH CallRowNum AS
(
SELECT (CASE WHEN Text LIKE 'Call request from%' THEN (LogTime)
ELSE NULL
END) AS REQUEST_TIME,
(CASE WHEN Text LIKE 'Start conversation%' THEN (LogTime)
ELSE NULL
END) AS CALL_START,
(CASE WHEN Text LIKE 'Call deleted%' THEN (LogTime)
ELSE NULL
END) AS CallEnd,
ROW_NUMBER() OVER (ORDER BY (REQUEST_TIME,CALL_START, CALL_END)) AS RowNumber
FROM [LogEntry] LE
)
SELECT *
FROM (Select *
FROM CallRowNum
WHERE [CALL START] IS NOT NULL) START
JOIN (SELECT *
FROM CallRowNum
WHERE [CallEnd] IS NOT NULL) [END]
ON [END].RowNumber = (START.RowNumber-1)
WHERE (START.[CALL START] IS NOT NULL
OR START.[CALL_REQUEST] IS NOT NULL
OR START.CallEnd IS NOT NULL)
Пока я не могу получить соединение, чтобы иметь правильный запрос вызова, время начала и окончания. Выше приведено только для связывания начальной и конечной части
РЕДАКТИРОВАТЬ - ОБРАЗЕЦ ДАННЫХ: