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

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Bharathi09
Creator II
Creator II

Data from one table to another

Hi all,

Hi All,

I have 3 tables

 

Cost Master:

Origin Destination Cost
Chennai Coimbatore $10.00
Coimbatore Pune $15.00
Chennai Pune $20.00
Coimbatore Tambaram $25.00
Pune Tambaram $30.00

 

 

Movements:

Origin Destination
Chennai Coimbatore
Coimbatore Pune
Chennai Pune
Coimbatore Chennai
Pune Chennai
Hyderabad Chennai

 

 

Mapping Table:

Location Alternate Location
Chennai Tambaram
Coimbatore Erode
Pune Thane
Hyderabad Secunderabad

 

 

I need to build a result in such a way that I need to map the cost from Cost Master to Movements. But I need to consider alternate locations as well. For eg., if I don't have value for Cost between Coimbatore to Chennai, I need to use Alternate location for one of them like Coimbatore to Tambaram. 

 

The below is the result table:

 

Result Table

Origin

Destination

Cost

Cost Origin

Cost Destination

Chennai

Coimbatore

$10.00

Chennai

Coimbatore

Coimbatore

Pune

$15.00

Coimbatore

Pune

Chennai

Pune

$20.00

Chennai

Pune

Coimbatore

Chennai

$25.00

Coimbatore

Tambaram

Pune

Chennai

$30.00

Pune

Tambaram

Hyderabad

Chennai

No Data

Hyderabad

Chennai

 

Please help

Thanks in advance

Labels (1)
1 Reply
justISO
Specialist
Specialist

Hi, not so elegant solution, but should work:

Cost_master:
load * inline [
Origin, Destination, Cost
Chennai, Coimbatore, 10
Coimbatore, Pune, 15
Chennai, Pune, 20
Coimbatore, Tambaram, 25
Pune, Tambaram, 30];

Movements:
load * inline [
Origin2, Destination2
Chennai, Coimbatore
Coimbatore, Pune
Chennai, Pune
Coimbatore, Chennai
Pune, Chennai
Hyderabad, Chennai];

mapping:
load * inline [
Location, Alternate Location
Chennai, Tambaram
Coimbatore, Erode
Pune, Thane
Hyderabad, Secunderabad];

//------

NoConcatenate
temp:
Load 
Origin2 as Origin,
Destination2 as Destination
Resident Movements;

left join (temp)
load
Location as Destination,
[Alternate Location]
Resident mapping;

left join (temp) //fill cost
load
Origin, 
Destination,
Cost,
Origin as [Cost Origin],
Destination as [Cost Destination]
Resident Cost_master;

left join (temp) //fill cost for alternative
load
Origin, 
Destination as [Alternate Location], 
Cost as Cost2,
Origin as [Cost Origin2],
Destination as [Cost Destination2]
Resident Cost_master;

drop tables Cost_master, Movements, mapping;

NoConcatenate
main: //combine everything to final table
load
Origin,
Destination,
Coalesce(Cost, Cost2, 'No Data') as Cost,
Coalesce([Cost Origin], [Cost Origin2], Origin) as [Cost Origin],
Coalesce([Cost Destination], [Cost Destination2], Destination) as [Cost Destination]
Resident temp;

drop table temp;