Qlik Community

New to QlikView

Discussion board where members can get started with QlikView.

Announcements
Modernize Your QlikView Deployment webinar, Nov. 3rd. REGISTER
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Not applicable

Joining QVD tables to reduce data

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

5 Replies
Highlighted
Champion III
Champion III

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;

Highlighted
Not applicable

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

Highlighted
Champion III
Champion III

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.)

Highlighted
Not applicable

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

Highlighted
Specialist III
Specialist III

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