У меня есть таблица Оборудования, в которой хранится: Отметка времени действия (например, начало, окончание sh, отмена, ..) текущего местоположения, источника, пункта назначения, идентификатора Box.
Теперь я выяснил Query, где я визуализирую для каждого блока, где он начался, когда он начался, где он действительно пошел и когда он туда пошел.
Это полезно для нас, так как иногда коробка не будет go к желаемому месту назначения и, таким образом, мы можем визуализировать позже, где это пошло не так, когда текущее местоположение! = место назначения и состояние задания = fini sh.
Единственная проблема в том, что иногда база данных хранит неправильные значения для стартовое местоположение.
Итак, я хочу выяснить, как использовать мой уже существующий запрос и всегда заменять источник на текущее местоположение, когда текущее действие = 'start'
SELECT JOB_NAME, startLocation, endLocation, REAL_DESTINATION, startEvent, endEvent, Starttime,
endTime from
(
SELECT JOB_NAME, NEW_STATUS as startEvent , CURRENT_LOCATION, SOURCE as startLocation, TIMESTAMP
as Starttime,
LEAD(CURRENT_LOCATION, 1) OVER (PARTITION by JOB_NAME order by TIMESTAMP) as DESTINATION,
LEAD(TIMESTAMP, 1) OVER (PARTITION by JOB_NAME order by TIMESTAMP) as endTIME,
LEAD(NEW_STATUS, 1) OVER (PARTITION BY JOB_NAME order by TIMESTAMP) as endEvent,
LEAD(DESTINATION, 1) OVER (Partition by JOB_NAME order by TIMESTAMP) as endLocation
from my_table
WHERE TIMESTAMP >= to_date(sysdate-3)
AND NEW_STATUS in ('Started', 'Finished', 'Canceled') AND OLD_STATUS not in ('Started',
'Finished', 'Canceled')
AND TIMESTAMP >= to_date(sysdate-7)
ORDER BY JOB_NAME, Starttime asc
)
WHERE STARTEVENT = 'Started'
AND ENDEVENT != 'Started'
Я хочу что-то вроде: если startEvent = 'start', то SourceLocation = CurrentLocation