Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Resolving synthetic key issues

Hi Guys,

I got several synthetic keys and circular references...i have used the following approach to resolve them please let me know if it is good way to do it...

Qualify *;

[Transactions]:

Load ItemListID,

Quantity

From Transactions.qvd;

Unqualify*;

Qualify *

Unqualify Transactions.ItemListID;

[Item]:

Load

ListID as Transactions.ItemListID,

ListID as ItemListID

From Item.qvd;

Unqualify*;

Qualify *;

Unqualify Item.ItemListID;

[Site]:

Load

ListID,

ItemListID as Item.ItemListID;

From Site.qvd;

Unqualify *;

Basically i am using creating two fields with different name for ListID in Item table and using them to connect to different tables to avoid circular reference.

Regards,

Saurabh

2 Replies
Gysbert_Wassenaar

It looks to me like you could simply leave out the Item table. It is totally redundant. If you do need that table because you're using fields from it that you didn't show us in your example then you could simply rename the ListID field to ItemListID.

[Transactions]:

Load ItemListID,

Quantity

From Transactions.qvd (qvd);

[Site]:

Load

ListID,

ItemListID;

From Site.qvd (qvd);

optionally:

[Item]:

Load ListID as ItemListID,

FieldX,

FieldY

...

From Item.qvd (qvd);


talk is cheap, supply exceeds demand
Not applicable
Author

yeah i am using other fields from item table...

BTW i missed to add that In transaction table we have SiteListID and that is causing the circular references...

Transactions]:

Load ItemListID,

SiteListID,

Quantity

From Transactions.qvd;

Unqualify*;

Qualify *

Unqualify Transactions.ItemListID;

[Item]:

Load

ListID as Transactions.ItemListID,

ListID as ItemListID

From Item.qvd;

Unqualify*;

Qualify *;

Unqualify Item.ItemListID;

Unqualify Transactions.SiteListID;

[Site]:

Load

ListID as Transactions.SiteListID,

ItemListID as Item.ItemListID;

From Site.qvd;

Unqualify *;