HI
Can someone please help me with below requirement Logic and function to be used .
I need to filter by JOB and Task with start and end time for JO B and event respectively.
Log Table:
date | time | Event |
15-07-2019 | 1.00 Am | Job Start:Turning |
15-07-2019 | 2.00 Am | Task Start: Turning Componrnt 1 load tool |
15-07-2019 | 2.30 Am | tool loaded |
15-07-2019 | 2.40 Am | Machining |
15-07-2019 | 3.00 Am | Task End: Turning Componrnt 1 load tool |
15-07-2019 | 3.30 Am | Task Start: Turning Componrnt 2 load tool |
15-07-2019 | 4.00 Am | tool loaded |
15-07-2019 | 5.00 Am | Machining |
15-07-2019 | 5.15 Am | Task End:Turning Componrnt 2 load tool |
15-07-2019 | 5.55 Am | Job End: Turning |
15-07-2019 | 6.12 Am | Job Start:Milling |
15-07-2019 | 6.30 Am | Task Start: Milling Componrnt 1 load tool |
15-07-2019 | 7.00 Am | tool loaded |
15-07-2019 | 7.20 Am | Machining |
15-07-2019 | 7.25 Am | Task End:Milling Componrnt 1 load tool |
15-07-2019 | 7.40 Am | Task Start: Milling Componrnt 2 load tool |
15-07-2019 | 7.50 Am | tool loaded |
15-07-2019 | 8.05 Am | Machining |
15-07-2019 | 8.15 Am | Task End: Milling Componrnt 2 load tool |
15-07-2019 | 8.18 Am | Job End: Milling |
15-07-2019 | 8.30 Am | Job Start :Cleaning |
15-07-2019 | 8.35 AM | Task Start: CleaningComponrnt 2 load tool |
15-07-2019 | 8.40 Am | tool loaded |
15-07-2019 | 8.45 Am | Cleaning |
15-07-2019 | 8.45 Am | Task End: CleaningComponrnt 2 load tool |
15-07-2019 | 8.45 Am | Job End:Cleaning |
I need to get table similar so that i can filter in the front end by Job and Task
date | time | Event | JOB | Start Time | End Time |
15-07-2019 | 1.00 Am | Job Start:Turning | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 2.00 Am | Task Start: Turning Componrnt 1 load tool | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 2.30 Am | tool loaded | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 2.40 Am | Machining | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 3.00 Am | Task End: Turning Componrnt 1 load tool | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 3.30 Am | Task Start: Turning Componrnt 2 load tool | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 4.00 Am | tool loaded | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 5.00 Am | Machining | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 5.15 Am | Task End:Turning Componrnt 2 load tool | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 5.55 Am | Job End: Turning | Turning | 1.00 Am | 5.55 Am |
15-07-2019 | 6.12 Am | Job Start:Milling | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 6.30 Am | Task Start: Milling Componrnt 1 load tool | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 7.00 Am | tool loaded | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 7.20 Am | Machining | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 7.25 Am | Task End:Milling Componrnt 1 load tool | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 7.40 Am | Task Start: Milling Componrnt 2 load tool | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 7.50 Am | tool loaded | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 8.05 Am | Machining | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 8.15 Am | Task End: Milling Componrnt 2 load tool | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 8.18 Am | Job End: Milling | Milling | 6.12 Am | 8.18 Am |
15-07-2019 | 8.30 Am | Job Start :Cleaning | Cleaning | 8.30 Am | 8.45 Am |
15-07-2019 | 8.35 AM | Task Start: CleaningComponrnt 2 load tool | Cleaning | 8.30 Am | 8.45 Am |
15-07-2019 | 8.40 Am | tool loaded | Cleaning | 8.30 Am | 8.45 Am |
15-07-2019 | 8.45 Am | Cleaning | Cleaning | 8.30 Am | 8.45 Am |
15-07-2019 | 8.45 Am | Task End: CleaningComponrnt 2 load tool | Cleaning | 8.30 Am | 8.45 Am |
15-07-2019 | 8.45 Am | Job End:Cleaning | Cleaning | 8.30 Am | 8.45 Am |
You should cover or describe that as well to avoid too much effort. Perhaps this?
Sample:
LOAD date,
time,
Event,
If(Len(Trim(JOB)) = 0, Peek('JOB'), JOB) as JOB,
If(Len(Trim([Start Time])) = 0, Peek('Start Time'), [Start Time]) as [Start Time], [End Time];
LOAD *, If(Index(Event, 'Job Start:Turning'),'Turning',
If(Index(Event, 'Job Start:Milling'),'Milling',
If(Index(Event, 'Job Start :Cleaning'),'Cleaning'))) as JOB,
If(Index(Event, 'Job Start:Turning'),time,
If(Index(Event, 'Job Start:Milling'),time,
If(Index(Event, 'Job Start :Cleaning'),time))) as [Start Time],
If(Index(Event, 'Job End'), time) as [End Time] Inline [
date, time, Event
15-07-2019, 01:00 AM, Job Start:Turning
15-07-2019, 02:00 AM, Task Start: Turning Componrnt 1 load tool
15-07-2019, 02:30 AM, tool loaded
15-07-2019, 02:40 AM, Machining
15-07-2019, 03:00 AM, Task End: Turning Componrnt 1 load tool
15-07-2019, 03:30 AM, Task Start: Turning Componrnt 2 load tool
15-07-2019, 04:00 AM, tool loaded
15-07-2019, 05:00 AM, Machining
15-07-2019, 05:15 AM, Task End:Turning Componrnt 2 load tool
15-07-2019, 05:55 AM, Job End: Turning
15-07-2019, 06:12 AM, Job Start:Milling
15-07-2019, 06:30 AM, Task Start: Milling Componrnt 1 load tool
15-07-2019, 07:00 AM, tool loaded
15-07-2019, 07:20 AM, Machining
15-07-2019, 07:25 AM, Task End:Milling Componrnt 1 load tool
15-07-2019, 07:40 AM, Task Start: Milling Componrnt 2 load tool
15-07-2019, 07:50 AM, tool loaded
15-07-2019, 08:05 AM, Machining
15-07-2019, 08:15 AM, Task End: Milling Componrnt 2 load tool
15-07-2019, 08:18 AM, Job End: Milling
15-07-2019, 08:30 AM, Job Start :Cleaning
15-07-2019, 08:35 AM, Task Start: CleaningComponrnt 2 load tool
15-07-2019, 08:40 AM, tool loaded
15-07-2019, 08:45 AM, Cleaning
15-07-2019, 08:45 AM, Task End: CleaningComponrnt 2 load tool
15-07-2019, 08:45 AM, Job End:Cleaning
];
Final:
NoConcatenate
LOAD date,
time,
Event,
JOB,
[Start Time],
If(Len(Trim([End Time])) = 0, Peek('End Time'), [End Time]) as [End Time]
Resident Sample Order By time desc, Event asc, JOB desc, [Start Time] desc;
DROP Table Sample;
PFA
HI Anil
Thanks for the reply ,I had used similar function and able to achieve start time for job and task but my problem is the end time of a job and task.
You should cover or describe that as well to avoid too much effort. Perhaps this?
Sample:
LOAD date,
time,
Event,
If(Len(Trim(JOB)) = 0, Peek('JOB'), JOB) as JOB,
If(Len(Trim([Start Time])) = 0, Peek('Start Time'), [Start Time]) as [Start Time], [End Time];
LOAD *, If(Index(Event, 'Job Start:Turning'),'Turning',
If(Index(Event, 'Job Start:Milling'),'Milling',
If(Index(Event, 'Job Start :Cleaning'),'Cleaning'))) as JOB,
If(Index(Event, 'Job Start:Turning'),time,
If(Index(Event, 'Job Start:Milling'),time,
If(Index(Event, 'Job Start :Cleaning'),time))) as [Start Time],
If(Index(Event, 'Job End'), time) as [End Time] Inline [
date, time, Event
15-07-2019, 01:00 AM, Job Start:Turning
15-07-2019, 02:00 AM, Task Start: Turning Componrnt 1 load tool
15-07-2019, 02:30 AM, tool loaded
15-07-2019, 02:40 AM, Machining
15-07-2019, 03:00 AM, Task End: Turning Componrnt 1 load tool
15-07-2019, 03:30 AM, Task Start: Turning Componrnt 2 load tool
15-07-2019, 04:00 AM, tool loaded
15-07-2019, 05:00 AM, Machining
15-07-2019, 05:15 AM, Task End:Turning Componrnt 2 load tool
15-07-2019, 05:55 AM, Job End: Turning
15-07-2019, 06:12 AM, Job Start:Milling
15-07-2019, 06:30 AM, Task Start: Milling Componrnt 1 load tool
15-07-2019, 07:00 AM, tool loaded
15-07-2019, 07:20 AM, Machining
15-07-2019, 07:25 AM, Task End:Milling Componrnt 1 load tool
15-07-2019, 07:40 AM, Task Start: Milling Componrnt 2 load tool
15-07-2019, 07:50 AM, tool loaded
15-07-2019, 08:05 AM, Machining
15-07-2019, 08:15 AM, Task End: Milling Componrnt 2 load tool
15-07-2019, 08:18 AM, Job End: Milling
15-07-2019, 08:30 AM, Job Start :Cleaning
15-07-2019, 08:35 AM, Task Start: CleaningComponrnt 2 load tool
15-07-2019, 08:40 AM, tool loaded
15-07-2019, 08:45 AM, Cleaning
15-07-2019, 08:45 AM, Task End: CleaningComponrnt 2 load tool
15-07-2019, 08:45 AM, Job End:Cleaning
];
Final:
NoConcatenate
LOAD date,
time,
Event,
JOB,
[Start Time],
If(Len(Trim([End Time])) = 0, Peek('End Time'), [End Time]) as [End Time]
Resident Sample Order By time desc, Event asc, JOB desc, [Start Time] desc;
DROP Table Sample;