Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Jack7
Contributor II
Contributor II

Finding min date and max date of each status

Hi all,

I have a table below and I am trying to find the min and max date for every event per employee

Employee ID From Date To Date Status
1 26/01/2021 1/04/2021 USA
1 1/05/2021 9/10/2021 USA
1 10/10/2021 12/11/2021 New Zealand
1 13/11/2021 30/11/2021 Australia
1 1/12/2021 2/01/2022 Australia
1 3/01/2022 6/03/2022 New Zealand
1 7/03/2022 12/12/2022 USA
2 15/04/2020 20/05/2020 Australia
2 21/05/2020 1/06/2020 Australia
2 10/06/2020 14/08/2020 New Zealand
2 15/08/2020 7/12/2020 New Zealand
2 8/12/2020 1/01/2021 Australia
2 2/01/2021 5/03/2021 Australia

 

My desired output would look like this:

Employee From Date To Date Status
1 26/01/2021 9/10/2021 USA
1 10/10/2021 12/11/2021 New Zealand
1 13/11/2021 2/01/2022 Australia
1 3/01/2022 6/03/2022 New Zealand
1 7/03/2022 12/12/2022 USA
2 15/04/2020 1/06/2020 Australia
2 10/06/2020 7/12/2020 New Zealand
2 8/12/2020 5/03/2021 Australia

 

Unfortunately I have tried the group by method and it did not work in this scenario. 

 

Thankyou!

Labels (1)
1 Solution

Accepted Solutions
MayilVahanan

Hi

Try like below

Temp:
LOAD *, if([Employee ID] = Previous([Employee ID]), if(Status <> Previous(Status), Alt(Peek('Trip')+1,1) , Peek('Trip')), 1) as Trip INLINE [
Employee ID, From Date, To Date, Status
1, 26/01/2021, 1/04/2021, USA
1, 1/05/2021, 9/10/2021, USA
1, 10/10/2021, 12/11/2021, New Zealand
1, 13/11/2021, 30/11/2021, Australia
1, 1/12/2021, 2/01/2022, Australia
1, 3/01/2022, 6/03/2022, New Zealand
1, 7/03/2022, 12/12/2022, USA
2, 15/04/2020, 20/05/2020, Australia
2, 21/05/2020, 1/06/2020, Australia
2, 10/06/2020, 14/08/2020, New Zealand
2, 15/08/2020, 7/12/2020, New Zealand
2, 8/12/2020, 1/01/2021, Australia
2, 2/01/2021, 5/03/2021, Australia
];

NoConcatenate
EmpFinal:
Load [Employee ID], Trip, Status, Min([From Date]) as [From Date], Max([To Date]) as [To Date] Resident Temp
Group by [Employee ID], Trip, Status;

DROP Table Temp;

Drop Field Trip;

Thanks & Regards, Mayil Vahanan R
Please close the thread by marking correct answer & give likes if you like the post.

View solution in original post

2 Replies
MayilVahanan

Hi

Try like below

Temp:
LOAD *, if([Employee ID] = Previous([Employee ID]), if(Status <> Previous(Status), Alt(Peek('Trip')+1,1) , Peek('Trip')), 1) as Trip INLINE [
Employee ID, From Date, To Date, Status
1, 26/01/2021, 1/04/2021, USA
1, 1/05/2021, 9/10/2021, USA
1, 10/10/2021, 12/11/2021, New Zealand
1, 13/11/2021, 30/11/2021, Australia
1, 1/12/2021, 2/01/2022, Australia
1, 3/01/2022, 6/03/2022, New Zealand
1, 7/03/2022, 12/12/2022, USA
2, 15/04/2020, 20/05/2020, Australia
2, 21/05/2020, 1/06/2020, Australia
2, 10/06/2020, 14/08/2020, New Zealand
2, 15/08/2020, 7/12/2020, New Zealand
2, 8/12/2020, 1/01/2021, Australia
2, 2/01/2021, 5/03/2021, Australia
];

NoConcatenate
EmpFinal:
Load [Employee ID], Trip, Status, Min([From Date]) as [From Date], Max([To Date]) as [To Date] Resident Temp
Group by [Employee ID], Trip, Status;

DROP Table Temp;

Drop Field Trip;

Thanks & Regards, Mayil Vahanan R
Please close the thread by marking correct answer & give likes if you like the post.
Jack7
Contributor II
Contributor II
Author

Thankyou, appreciate it!