Мне нужен запрос для сопряжения чередующихся данных «старт» и «конец» раз в один аккуратный вывод, но мое основное препятствие заключается в том, как данные хранятся в чередующемся формате в пределах ProcessTimer таблица.Запрос на пару чередующихся начальных и конечных времен
Входной таблице 1
У меня есть таблица с именем ProcessTimer с тремя столбцами.
- ProcessTimerId INT (первичный ключ)
- ProcessTimerDatetime DATETIME
- ProcessTimerAction УАКСНАК (5)
- ProcessId INT (FOREIGN KEY)
'ProcessTimerAction «только когда-либо устанавливается на значение„START“или„СТОП“, которая связывает в к» ProcessTimerDatetime «колонку, потому что» ProcessTimerDatetime 'хранит значение DATETIME о том, когда процесс запущен или остановлен.
Каждый процесс идентифицируется с помощью ProcessId, и что ссылки на другую таблицу называют Process, который имеет некоторые подробности о каждом процессе.
Входной таблица 2
Процесс таблицы устанавливается следующим образом:
- ProcessId INT (первичный ключ)
- ProcessName УАКСНАК (255)
- ProcessOwner УАКСНАК (255)
Логически, действие начать процесс всегда должно сопровождаться действием СТОП, и отображение в парах, однако ошибки в данных означают, что не всегда СТОП действие для каждых С действий , В этих случаях нет ничего, что я могу сделать, но отображать NULL для отсутствующей записи СТОП
Желаемая выходной
Я хотел бы представлять данные в сетке со следующими заголовками.
- ProcessOwner
- ProcessName
- ProcessStartTime
- ProcessEndTime
Кто достиг чего-то, как это раньше?
Я не уверен, как начать решать вопрос, который мне нужен.
Пример данных
ProcessTimer стол
ProcessTimerId,ProcessTimerDatetime,ProcessTimerAction,ProcessId
1,1/1/2017 08:00:34,START,883
2,1/1/2017 08:03:76,STOP,883
3,1/1/2017 08:03:77,START,445
4,1/1/2017 08:03:79,START,636
5,1/1/2017 08:05:77,STOP,445
6,1/1/2017 08:07:34,START,445
7,1/1/2017 08:09:23,START,445
8,1/1/2017 08:12:61,STOP,636
9,1/1/2017 08:14:65,STOP,445
Процесс таблицы
ProcessId,ProcessName,ProcessOwner
445,CTC hourlies,Sarah Parkes
636,Garage import,John Dean
883,DF task,Kate Duke
Вы говорите о получении запуска и остановки на одной строке? – Snowlockk
Если так, то в строке Row_Number, разделенной на ProcessId. Присоединиться к нему с помощью RID = RID + 1 AND ProcessId = ProcessId – Snowlockk