Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Qiyanlu66
Partner - Contributor III
Partner - Contributor III

Can someone helps me with how to do this in Qlik Sense load script?

Hi everyone,

 

Here is my original table,

Item NumberDateTotalMinus
A2020-01-0145 
A 2020-01-02 5
A 2020-01-03  
A 2020-01-04  
B2020-01-01100 
B 2020-01-02  
B 2020-01-03 10
B 2020-01-04  

 

Here is the result table that I want.

Item NumberDateTotalMinus
A2020-01-0145 
A 2020-01-02405
A 2020-01-0340 
A 2020-01-0440 
B2020-01-01100 
B 2020-01-02100 
B 2020-01-039010
B 2020-01-0490 

 

Can someone please help me with how to write the load script to convert the first table to the second one? Or maybe some ideas would be very much appreciate.

Thanks for any helps.

Yan

Labels (1)
2 Replies
Kushal_Chawda

@Qiyanlu66  try below. Assuming your Date field is in proper Date format

Data:
LOAD [Item Number], 
     Date, 
     Total, 
     Minus
FROM
[https://community.qlik.com/t5/New-to-Qlik-Sense/Can-someone-helps-me-with-how-to-do-this-in-Qlik-Sense-load/td-p/1747844]
(html, utf8, UserAgent is 'Mozilla/5.0', embedded labels, table is @1);

Final:
LOAD *,
     if([Item Number]<>Previous([Item Number]),rangesum(Total,-Minus), rangesum(Peek(Total_New),-Minus)) as Total_New
Resident Data
Order by [Item Number],Date;

DROP Table Data;

Screenshot 2020-09-28 214620.png

 

stascher
Partner - Creator II
Partner - Creator II

If you're a fan of SQL joins you can do something like this.

Data:
LOAD [Item Number], 
     Date, 
     Total, 
     Minus
FROM
[https://community.qlik.com/t5/New-to-Qlik-Sense/Can-someone-helps-me-with-how-to-do-this-in-Qlik-Sense-load/td-p/1747844]
(html, utf8, UserAgent is 'Mozilla/5.0', embedded labels, table is @1);


left join 
load [Item Number], max(Total) as MaxTotal
resident Data group by [Item Number];

left Join
load [Item Number], Date as MinusDate, Minus as MinusVal
resident Data where len(Minus)>0;

left Join
load [Item Number], Date, if(Date>=MinusDate,MaxTotal-MinusVal,MaxTotal) as Result
resident Data;

Final:
load [Item Number],Date,Result as Total, Minus resident Data;

drop table Data;