Synthetic table is recommended in interval match scenarios. At least I recommend through my experience Best possible performance because if you join it into the bridge table (which you can) it multiplies the table and creates a huge one, slowing the performance eventually. As long as the result is correct, this model is best practice.
You can try joining it; you can see yourself. Just write "join" before the bridge table.
IntervalMatch is a two-step process in fact:
- First you use the function to join the intervals (start_date and end_date) to the distinct event_dates;
- Then you can use those two fields (plus a key_field, optionally) to join in the price_data from the intervals_table.
=> The synthetic key after the first step is normal (you haven't yet joined) (think about it, the tables have two fields which are named the
same and QlikView automatically links those, so of course you'd get a synthetic key)
Serhan is completely right. Write a JOIN (or I would recommend adding the name of the table you want that to be joined to in brackets like >> JOIN (events) << before the IntervalMatch() to join that to the events_table and the synthetic key will be gone.
=> Then you can, in a second step, join the price_data from the intervals_table to that.
Thank you for your answers But I have one more question... How can one avoid synthetic table, when slowly changing dimension is a case? In the example above appears synthetic table...
Thank you in advance
LOAD * INLINE [
event, eventdate, intervalId
a, 12.03.2014, 1
b, 12.03.2015, 3
LOAD * INLINE [
intervalId, begin, end, preis
1, 01.01.2013, 01.05.2014, 65
2, 01.01.2016, 01.05.2016, 55
3, 02.05.2014, 31.12.2015, 75
4, 02.05.2014, 31.12.2015, 85
IntervalMatch (eventdate, intervalId)
load begin, end, intervalId