Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi
I am new to QLIK, but have worked my way through the basics. I have a problem joining QVD tables.
I have produced QVD tables that I want to use across other Apps, but the my current App I don't need all the data from Fact QVD table, I want to use other QVD by a join to only bring back data which is in both tables but also join it by field that I don't want to return in the report. Is this possible?
Thanks
Nick
Sure.
Use inner join to get only the data you need. After that, you can drop the field(s) you don't want.
Edit: adding an example
table:
LOAD
Key,
...
FROM QVD1.qvd (qvd);
INNER JOIN (table) LOAD
Key,
...
FROM QVD2.qvd (qvd);
DROP FIELD Key;
Thanks for your response Michael
The fact file has 6m rows, when I do inner join it still fetches 6m rows first rather 1m rows I would expect with the join, I am guess it doesn't work like SQL. This causes a memory issue because I am using a basic laptop
I'm sure that it loads all rows of the first table at the beginning. Maybe (I'm not sure) if you load the smaller table first, the second larger table is not loading all rows. Worth trying.
Actually 6m rows is not much by itself. It could be the nature of rows that creates the problem (too many columns, text data, etc.)
It still brings back the same data but the memory issue is no longer an issue. Unfortunately, it works with 2 tables but when I need to add further to tables it uses the smaller table as the fact table.
I think I will use SQL to do the joins.
Thanks for your help
if you are limited on memory, then doing the join in SQL could be your best alternative, another option is to before you do the join add a where exists condition to reduce the data and then apply a join to the resident table, you will have both tables in memory but the data that is loaded is already reduced.
I do not apply during the joins because I have noticed that QV first does the join and then applies the where clauses