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: 
Not applicable

Recalculate field in script

At the end of my script I want to recalculate the [Exp hrs].

In one LOAD-statement I'm adding the fields [%Date], [Actual Hours], [Exp hrs] and [Calculation Method] to [MyTable]

I'm using a JOIN to add the field [Target Prod]

Now depending on the Calculation Method the Expected hours need to be recalculated.

My join doesn't recalculate all the records in [MyTable]

// use calculation method to recalculate [Exp hrs]

LEFT JOIN ([MyTable])

LOAD If ([Calculation Method]=2,

      IF ([Actual Hours]>0, [Target Prod],

      0),

      [Exp hrs])

      as [Exp Hours]

RESIDENT MyTable;

Drop Fields [Exp hrs];

Can anyone tell me how I'm supposed to recalculate all records?

1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Why JOIN?

You can

NewTable:

LOAD

  *,

If ([Calculation Method]=2,

      IF ([Actual Hours]>0, [Target Prod],

      0),

      [Exp hrs])

      as [Exp Hours]

resident MyTable;

Drop table MyTable

View solution in original post

3 Replies
rbecher
MVP
MVP

Hi Erik,

I think you'll need at least one identifying column to match the row for the join:

LEFT JOIN (MyTable)

LOAD ID, <Expression> as Exp

Resident MyTable;

- Ralf

Astrato.io Head of R&D
Clever_Anjos
Employee
Employee

Why JOIN?

You can

NewTable:

LOAD

  *,

If ([Calculation Method]=2,

      IF ([Actual Hours]>0, [Target Prod],

      0),

      [Exp hrs])

      as [Exp Hours]

resident MyTable;

Drop table MyTable

rbecher
MVP
MVP

Why Join: if this is a large fact table it could have serious memory implications..

Astrato.io Head of R&D