Skip to main content

App Development

Discussion board where members can learn more about Qlik Sense App Development and Usage.

Announcements
Welcome to Qlik Community! Check out our new navigation! FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
ryan_giebel
Partner - Contributor
Partner - Contributor

Conditional Join in Qlik Sense

I am trying to join two QVD tables based on a field in a third table (since the primary key in the first table will not have a match in the third table for products that are refunded). The field in the third table contains order_type field which is the base for my conditional join. Is there a way to have a conditional join in the load script to make this possible?

Tables:

1. order_products

2. order_product_inventory

3. orders

Below are the two conditions:

#1. if orders.order_type <> 'refund' join order_products.id to order_product_inventory.order_product_id

#2. if orders.order_type = 'refund' join order_products.refunded_order_product_id to order_product_inventory.order_product_id

If you'd like to see the sql query for the two conditions, see below:

#1 order_type <> 'refund'

Select *

FROM orders ord

LEFT JOIN order_products opr on ord.id = opr.order_id

LEFT JOIN order_product_inv opi on opr.id = opi.order_product_id

WHERE ord.order_type <> 'refund'

#2 order_type = 'refund'

Select *

FROM orders ord

LEFT JOIN order_products opr on ord.id = opr.order_id

LEFT JOIN order_product_inventory opi on opr.refunded_order_product_id = opi.order_product_id

WHERE ord.order_type = 'refund'

0 Replies