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

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
GeorgePhilips23
Partner - Contributor III
Partner - Contributor III

Split One dimension field into Two fields, Any ideas???

2022-02-24 (4).png

 

Labels (4)
1 Solution

Accepted Solutions
RsQK
Creator II
Creator II

Hi, could be something like this:

temp_data:
LOAD * INLINE [
VisitID,VisitStatus
70000,Approve
70000,Retest
700001,Approve
700001,Pending
700002,Approve
700002,Pending
700002,Retest
];

temp_data2:
LOAD *,
IF(PREVIOUS(VisitID)=VisitID,PEEK(VisitStatus)) as OldVisitStatus,
IF(PREVIOUS(VisitID)=VisitID,1,0) as req_record_flag,
ROWNO() AS RowId
RESIDENT temp_data;

DROP TABLE temp_data;

temp_data3:
LOAD *,
IF(PREVIOUS(VisitID)=VisitID,0,1) as req_record_flag2
RESIDENT temp_data2
ORDER BY RowId DESC;

DROP TABLE temp_data2;

INNER JOIN (temp_data3)
LOAD
1 AS req_record_flag,
1 AS req_record_flag2
AUTOGENERATE 1;

data:
LOAD
VisitID,
VisitStatus AS NewVisitStatus,
OldVisitStatus
RESIDENT temp_data3;

DROP TABLE temp_data3;

Make sure that the data is loaded in the required order. 

View solution in original post

6 Replies
Iswarya_
Creator
Creator

Hi @GeorgePhilips23 ,

What is the expected output here?

GeorgePhilips23
Partner - Contributor III
Partner - Contributor III
Author

Please find attached pic for script;

now I need most recent status changes into oldstatus and newstatus;

Thank you!

RsQK
Creator II
Creator II

Hi, could be something like this:

temp_data:
LOAD * INLINE [
VisitID,VisitStatus
70000,Approve
70000,Retest
700001,Approve
700001,Pending
700002,Approve
700002,Pending
700002,Retest
];

temp_data2:
LOAD *,
IF(PREVIOUS(VisitID)=VisitID,PEEK(VisitStatus)) as OldVisitStatus,
IF(PREVIOUS(VisitID)=VisitID,1,0) as req_record_flag,
ROWNO() AS RowId
RESIDENT temp_data;

DROP TABLE temp_data;

temp_data3:
LOAD *,
IF(PREVIOUS(VisitID)=VisitID,0,1) as req_record_flag2
RESIDENT temp_data2
ORDER BY RowId DESC;

DROP TABLE temp_data2;

INNER JOIN (temp_data3)
LOAD
1 AS req_record_flag,
1 AS req_record_flag2
AUTOGENERATE 1;

data:
LOAD
VisitID,
VisitStatus AS NewVisitStatus,
OldVisitStatus
RESIDENT temp_data3;

DROP TABLE temp_data3;

Make sure that the data is loaded in the required order. 

GeorgePhilips23
Partner - Contributor III
Partner - Contributor III
Author

Thanks a lot, it worked!

 

caramel_mumu
Contributor II
Contributor II

Hi, is there a way to do this from the front end?