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

Announcements
See why IDC MarketScape names Qlik a 2025 Leader! Read more
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

sum level higher in straight table

In my case, source table

LevelHeader 2
level110
level24
level35
level11
level23

Difined level relation as level1 => level2 => level3

I need the straight table like blow

Level     sum

level1    23        // sum({<Level={'level1','level2','level3'}>} num)   10+1+4+3+5

level2    12        // sum({<Level={'level2','level3}>} num)   4+3+5

level3     5         //sum({<Level={'level3'} num)     5

Thanks for any help.

1 Solution

Accepted Solutions
sunny_talwar

Create a new flag in the script like this and also created another field which I don't want to do an accumulated sum

Table:

LOAD Level,

  KeepChar(Level, '0123456789') * 1 as LevelNum,

    [Header 2],

    Ceil(Rand() * 100) * 10 as Sales

FROM

[https://community.qlik.com/thread/232687]

(html, codepage is 1252, embedded labels, table is @1);

LinkTable:

LOAD 'Level' & LevelNum as ReportLevel,

  LevelNum + IterNo() - 1 as LevelNum,

If(LevelNum + IterNo() - 1 = LevelNum, 1, 0) as Flag

Resident Table

While LevelNum + IterNo() - 1 <= 3;

Dimension:

ReportLevel

Expressions

1) =Sum([Header 2])

2) =Sum({<Flag = {1}>}Sales)

Anywhere you want to do a calculation based of Level, use Flag = {1} in your expression

Capture.PNG

View solution in original post

4 Replies
sunny_talwar

May be using a Link Table

Table:

LOAD Level,

  KeepChar(Level, '0123456789') * 1 as LevelNum,

    [Header 2]

FROM

[https://community.qlik.com/thread/232687]

(html, codepage is 1252, embedded labels, table is @1);

LinkTable:

LOAD 'Level' & LevelNum as ReportLevel,

  LevelNum + IterNo() - 1 as LevelNum

Resident Table

While LevelNum + IterNo() - 1 <= 3;

Capture.PNG

Not applicable
Author

Unfortunately I have some other expression in straight table use dimension "Level",so I can't change the dimension.

It's my mistake that forget attension this condition on the question.


Thanks for your help.

sunny_talwar

Create a new flag in the script like this and also created another field which I don't want to do an accumulated sum

Table:

LOAD Level,

  KeepChar(Level, '0123456789') * 1 as LevelNum,

    [Header 2],

    Ceil(Rand() * 100) * 10 as Sales

FROM

[https://community.qlik.com/thread/232687]

(html, codepage is 1252, embedded labels, table is @1);

LinkTable:

LOAD 'Level' & LevelNum as ReportLevel,

  LevelNum + IterNo() - 1 as LevelNum,

If(LevelNum + IterNo() - 1 = LevelNum, 1, 0) as Flag

Resident Table

While LevelNum + IterNo() - 1 <= 3;

Dimension:

ReportLevel

Expressions

1) =Sum([Header 2])

2) =Sum({<Flag = {1}>}Sales)

Anywhere you want to do a calculation based of Level, use Flag = {1} in your expression

Capture.PNG

Not applicable
Author

Thanks very very very much.

I have a long way to go.