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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
qluser01
Creator
Creator

how to make a hierarchy using numbers

Hi!

I have an input like this:

numbername
1Process_name
1.1SubProcess_name
1.1.1Step_name
1.1.1.1Substep_name
1.1.1.2Substep_2_name
1.1.1.3Substep3_name
1.1.2Step2_name
1.1.2.1Substep4_name
1.1.2.2Substep5_name

And I need to make a table inside QView via script as follows:

numberProcessSubProcessStepSubStep
1.1.1.1Process_nameSubProcess_nameStep_nameSubstep_name
1.1.1.2Process_nameSubProcess_nameStep_nameSubstep_2_name
1.1.1.3Process_nameSubProcess_nameStep_nameSubstep3_name
1.1.2.1Process_nameSubProcess_nameStep2_nameSubstep4_name
1.1.2.2Process_nameSubProcess_nameStep2_nameSubstep5_name

So first digit - is Process numberm there are more than 10 processes - number from 1. to 10.

2nd digit - SubProcess number

and so on...

for your convenience:

Load * Inline

[number, name

1, Process_name

1.1, SubProcess_name

1.1.1, Step_name

1.1.1.1, Substep_name

1.1.1.2, Substep_2_name

1.1.1.3, Substep3_name

1.1.2, Step2_name

1.1.2.1, Substep4_name

1.1.2.2, Substep5_name

2, Process2_name

2.1, SubProcess2_name

2.1.1, Step222_name

2.1.1.1, Substep222_name

2.1.1.2, Substep223_name

];

Also, I need 2 solutions:

1) if we have hierarchy from Process to SubStep (see example above)

2) if we have hierarchy from Process to Step  - so no SubSteps present in initial table at all

1 Solution

Accepted Solutions
rahulpawarb
Specialist III
Specialist III

Hello Eeacrw,

Please refer below given sample script:

Data:

LOAD * INLINE [

number, name

1, Process_name

1.1, SubProcess_name

1.1.1, Step_name

1.1.1.1, Substep_name

1.1.1.2, Substep_2_name

1.1.1.3, Substep3_name

1.1.2, Step2_name

1.1.2.1, Substep4_name

1.1.2.2, Substep5_name

2, Process2_name

2.1, SubProcess2_name

2.1.1, Step222_name

2.1.1.1, Substep222_name

2.1.1.2, Substep223_name

];

TmpData:

LOAD number,

     Left(number,5) AS Number1,

     Left(number,3) AS Number2,

     Left(number,1) AS Number3,

     name AS SubStep

Resident Data

Where Len(number) = 7;

JOIN (TmpData)

LOAD Left(number,1) AS Number3,

     name AS Process

Resident Data

Where Len(number) = 1;

JOIN (TmpData)

LOAD Left(number,3) AS Number2,

     name AS SubProcess

Resident Data

Where Len(number) = 3;

JOIN (TmpData)

LOAD Left(number,5) AS Number1,

     name AS Step

Resident Data

Where Len(number) = 5;

FinalData:

LOAD number,

     Process,

     SubProcess,

     Step,

     SubStep

Resident TmpData;

DROP Tables Data, TmpData;

Also refer the attached sample application.

Hope this will be helpful.

Regards!

Rahul

View solution in original post

1 Reply
rahulpawarb
Specialist III
Specialist III

Hello Eeacrw,

Please refer below given sample script:

Data:

LOAD * INLINE [

number, name

1, Process_name

1.1, SubProcess_name

1.1.1, Step_name

1.1.1.1, Substep_name

1.1.1.2, Substep_2_name

1.1.1.3, Substep3_name

1.1.2, Step2_name

1.1.2.1, Substep4_name

1.1.2.2, Substep5_name

2, Process2_name

2.1, SubProcess2_name

2.1.1, Step222_name

2.1.1.1, Substep222_name

2.1.1.2, Substep223_name

];

TmpData:

LOAD number,

     Left(number,5) AS Number1,

     Left(number,3) AS Number2,

     Left(number,1) AS Number3,

     name AS SubStep

Resident Data

Where Len(number) = 7;

JOIN (TmpData)

LOAD Left(number,1) AS Number3,

     name AS Process

Resident Data

Where Len(number) = 1;

JOIN (TmpData)

LOAD Left(number,3) AS Number2,

     name AS SubProcess

Resident Data

Where Len(number) = 3;

JOIN (TmpData)

LOAD Left(number,5) AS Number1,

     name AS Step

Resident Data

Where Len(number) = 5;

FinalData:

LOAD number,

     Process,

     SubProcess,

     Step,

     SubStep

Resident TmpData;

DROP Tables Data, TmpData;

Also refer the attached sample application.

Hope this will be helpful.

Regards!

Rahul