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

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

FULL JOIN equivalent with load?

Hi, all.

I have two tables that appear as follows, counting attempted/successful events in my application:

Attempt Table

keyvaluecount
1Authentication2
1Account Lookup1
1Bill Pay1

Success Table

keyvaluecount
1Authentication1
1Account Lookup1

I am trying to load this data so it appears as follows:

keyeventattemptedsuccessfuldelta
1Authentication21-1
1Account Lookup110
1Bill Pay100

In SQL, I'd do this with a FULL JOIN on key and value from both tables, and converting null counts to to zeroes.

How do I accomplish the same using QV's LOAD mechanism?

Thanks!

Eric

Labels (1)
1 Solution

Accepted Solutions
Not applicable
Author

The code I mentioned will be the same but a slight change is required here

Final:

Load *,

if(isnull(Success),0,Success-Attempted) as Delta

Load key,

value,

if(isnull(Attempted,0,Attempted) as Attempted,

Success

Resident Attempt;

The JOIN command is similar to FULL OUTER JOIN in sql

View solution in original post

4 Replies
Not applicable
Author

Attached with answer. Please do a JOIN

Attempt:

LOAD key,

    value,

    count as Attempted

FROM

[http://community.qlik.com/thread/118478]

(html, codepage is 1252, embedded labels, table is @1);

Join

Success:

LOAD key,

    value,

    count as Success

FROM

[http://community.qlik.com/thread/118478]

(html, codepage is 1252, embedded labels, table is @2)

Where Len(Trim(key))>0;

Final:

Load *, if(isnull(Success),0,Success-Attempted) as Delta

Resident Attempt;

Drop table Attempt;

Not applicable
Author

Hi, Ajay.  Thanks for the quick response!

There is an edge case I have to account for, where the application misbehaves and produces a Success event without the corresponding Attempt (hence, the FULL JOIN instead of a conventional LEFT JOIN).

Attempt table:

keyvaluecount

Success table:

keyvaluecount
2Authentication1

Result table:

keyeventattemptedsuccessfuldelta
2Authentication011

What's the equivalent, here?

Thanks,

Eric

Not applicable
Author

The code I mentioned will be the same but a slight change is required here

Final:

Load *,

if(isnull(Success),0,Success-Attempted) as Delta

Load key,

value,

if(isnull(Attempted,0,Attempted) as Attempted,

Success

Resident Attempt;

The JOIN command is similar to FULL OUTER JOIN in sql

Colin-Albert
Partner - Champion
Partner - Champion

Why not simply concatenate the data and then sum in the chart to get the result.

No need for a join - this is QlikView not a database!

Attempt:

LOAD key,

    value,

    count as Attempted

FROM <attempt data> ;

concatenate(Attempt)

LOAD key,

    value,

    count as Successful

FROM <successful data> ;

You chart then has key & value as dimensions and sums Attenpted and Successful.

You will need to replace the FROM lines with valid expressions for your data.