<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to join with filtering based on both tables in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2102446#M1224345</link>
    <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/232286"&gt;@cvillani&lt;/a&gt;&amp;nbsp; The resultant table may add rows when there are multiple matches, leading to an increase in row count. To avoid this, it is essential to perform the join on a unique set of keys.&lt;/P&gt;</description>
    <pubDate>Fri, 04 Aug 2023 09:34:24 GMT</pubDate>
    <dc:creator>BrunPierre</dc:creator>
    <dc:date>2023-08-04T09:34:24Z</dc:date>
    <item>
      <title>How to join with filtering based on both tables</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/150132#M28214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I want to load data in QV from two tables. I must join them on one column (X) and restrict them on values from both tables (one from each).&lt;/P&gt;&lt;P&gt;SQL syntax would be&lt;/P&gt;&lt;P&gt;Select A.W,&lt;/P&gt;&lt;P&gt;B.Z&lt;/P&gt;&lt;P&gt;From A, B&lt;/P&gt;&lt;P&gt;where A.X = B.X&lt;/P&gt;&lt;P&gt;and A.W &amp;gt; B.Z&lt;/P&gt;&lt;P&gt;How could I do this in QV scripting?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks, Paul.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jul 2009 19:44:51 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/150132#M28214</guid>
      <dc:creator />
      <dc:date>2009-07-23T19:44:51Z</dc:date>
    </item>
    <item>
      <title>How to join with filtering based on both tables</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/150133#M28215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE style="overflow-x: scroll;"&gt;&lt;PRE style="margin: 0px;"&gt;&lt;BR /&gt;[TEMP]:&lt;BR /&gt;LOAD&lt;BR /&gt;Key,&lt;BR /&gt;ValueA&lt;BR /&gt;......;&lt;BR /&gt;LEFT JOIN ([TEMP])&lt;BR /&gt;LOAD&lt;BR /&gt;Key,&lt;BR /&gt;ValueB&lt;BR /&gt;......;&lt;BR /&gt;[TABLE]:&lt;BR /&gt;NOCONCATENATE LOAD&lt;BR /&gt;*&lt;BR /&gt;RESIDENT [TEMP]&lt;BR /&gt;WHERE ValueA&amp;gt;ValueB;&lt;BR /&gt;DROP TABLE [TEMP];&lt;BR /&gt;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Jul 2009 20:27:47 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/150133#M28215</guid>
      <dc:creator />
      <dc:date>2009-07-23T20:27:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to join with filtering based on both tables</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2099451#M1224322</link>
      <description>&lt;P&gt;Hi all, sorry for jumping in after so many years....&lt;/P&gt;
&lt;P&gt;I read this post (and the solution) because I have a similar problem.&lt;/P&gt;
&lt;P&gt;As far as I understand, correct if I'm wrong, with this solution QV first creates a temp table with all combinations (unfiltered) from both tables, and in a second step it applies the filter by creating and feeding the final table with the filtered rows.&lt;/P&gt;
&lt;P&gt;This solution is failing for me because both tables have a high number of rows, so the combinations between the two tables is exploding a huge amount of rows (that probably is exceeding the QV limits).&lt;/P&gt;
&lt;P&gt;Is there a different way to overcome this problem?&lt;BR /&gt;Thanks for your support&lt;/P&gt;
&lt;P&gt;Corrado&lt;/P&gt;</description>
      <pubDate>Wed, 02 Aug 2023 10:04:07 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2099451#M1224322</guid>
      <dc:creator>cvillani</dc:creator>
      <dc:date>2023-08-02T10:04:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to join with filtering based on both tables</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2102446#M1224345</link>
      <description>&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/232286"&gt;@cvillani&lt;/a&gt;&amp;nbsp; The resultant table may add rows when there are multiple matches, leading to an increase in row count. To avoid this, it is essential to perform the join on a unique set of keys.&lt;/P&gt;</description>
      <pubDate>Fri, 04 Aug 2023 09:34:24 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2102446#M1224345</guid>
      <dc:creator>BrunPierre</dc:creator>
      <dc:date>2023-08-04T09:34:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to join with filtering based on both tables</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2102582#M1224347</link>
      <description>&lt;DIV&gt;Thanks for answering BrunPierre.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Let me add some details of my problem.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Table "_Controls" contains 850.488 rows with these columns (plus others not relevant for this discussion):&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Id&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Type&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Account&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeTypeA (could be % or a specific AttributeA code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeTypeB (could be % or a specific AttributeB code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeTypeC (could be % or a specific AttributeC code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeTypeD (could be % or a specific AttributeD code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeTypeE (could be % or a specific AttributeE code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Table "_Data" containing 363.527 rows with the following columns (plus others not relevant for this discussion):&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Company&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Account&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeA (contains a specific AttributeA code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeB (contains a specific AttributeB code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeC (contains a specific AttributeC code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeD (contains a specific AttributeD code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; AttributeE (contains a specific AttributeE code)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Currency&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Amount&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;In a resulting "_Tmp" table I would need to have the following columns:&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.Company&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Control.Id&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Control.Type&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.Account&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.AttributeA&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.AttributeB&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.AttributeC&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.AttributeD&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.AttributeE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.Currency&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Data.Amount&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Where Data.Account=Control.Account&lt;/DIV&gt;
&lt;DIV&gt;And (Control.AttributeA='%' Or Control.AttributeA=Data.AttributeA)&lt;/DIV&gt;
&lt;DIV&gt;And (Control.AttributeB='%' Or Control.AttributeB=Data.AttributeB)&lt;/DIV&gt;
&lt;DIV&gt;And (Control.AttributeC='%' Or Control.AttributeC=Data.AttributeC)&lt;/DIV&gt;
&lt;DIV&gt;And (Control.AttributeD='%' Or Control.AttributeD=Data.AttributeD)&lt;/DIV&gt;
&lt;DIV&gt;And (Control.AttributeE='%' Or Control.AttributeE=Data.AttributeE)&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;That's why I need to apply the join filters before the cross join is performed.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;To limit the number of combinations I tried the following:&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;_Tmp:&lt;/DIV&gt;
&lt;DIV&gt;Load&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_ControlId&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_ControlType&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP_Account&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeTypeA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeTypeA&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeTypeB&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeTypeB&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeTypeC&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeTypeC&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeTypeD&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeTypeD&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeTypeE&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeTypeE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Account&amp;amp;AttributeTypeA As TMP_AccountAttrA&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Account&amp;amp;AttributeTypeB As TMP_AccountAttrB&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Account&amp;amp;AttributeTypeC As TMP_AccountAttrC&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Account&amp;amp;AttributeTypeD As TMP_AccountAttrD&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Account&amp;amp;AttributeTypeE As TMP_AccountAttrE&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Resident _Controls;&lt;/DIV&gt;
&lt;DIV&gt;Inner Join&lt;/DIV&gt;
&lt;DIV&gt;Load&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Company&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP_Company&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP_Account&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeA&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeB&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeB&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeC&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeC&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeD&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeD&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,AttributeE&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_AttributeE&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Currency&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_Currency&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; ,Amount&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_Amount&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;Resident _Data&lt;/DIV&gt;
&lt;DIV&gt;Where (&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrA,Account&amp;amp;'%')&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Or&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrA, Account&amp;amp;AttributeA)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;) And (&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrB,Account&amp;amp;'%')&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Or&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrB, Account&amp;amp;AttributeB)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;) And (&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrC,Account&amp;amp;'%')&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Or&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrC, Account&amp;amp;AttributeC)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;) And (&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrD,Account&amp;amp;'%')&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Or&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrD, Account&amp;amp;AttributeD)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;) And (&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrE,Account&amp;amp;'%')&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Or&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; Exists(TMP_AccountAttrE, Account&amp;amp;AttributeE)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;);&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;In this way, I'm excluding the combinations Account/AttributeX that don't exists, but I'm not fully applying the filter I need.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Do you have any idea how could I manage it?&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Thanks and sorry if I've been so ... verbose.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Corrado&lt;/DIV&gt;</description>
      <pubDate>Fri, 04 Aug 2023 14:25:32 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2102582#M1224347</guid>
      <dc:creator>cvillani</dc:creator>
      <dc:date>2023-08-04T14:25:32Z</dc:date>
    </item>
    <item>
      <title>Re: How to join with filtering based on both tables</title>
      <link>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2102885#M1224350</link>
      <description>&lt;DIV&gt;Hi all, short update.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I had to bypass the problem by splitting the join between the two tables in 32 (2^5), considering, for each join, different conditions:&lt;/DIV&gt;
&lt;PRE&gt;&amp;nbsp; A B C D E&lt;BR /&gt;&amp;nbsp; ---------&lt;BR /&gt;&amp;nbsp; 0 0 0 0 0&lt;BR /&gt;&amp;nbsp; 0 0 0 0 1&lt;BR /&gt;&amp;nbsp; 0 0 0 1 0&lt;BR /&gt;&amp;nbsp; 0 0 0 1 1&lt;BR /&gt;&amp;nbsp; .........&lt;BR /&gt;&amp;nbsp; 1 1 1 1 1&lt;/PRE&gt;
&lt;DIV&gt;where 0 means that the related attribute should be =%, 1 means that the related attribute should be &amp;lt;&amp;gt;%.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;When the attribute in the _Control table is =% then the related attribute values are taken only from _Data table.&lt;/DIV&gt;
&lt;DIV&gt;When the attribute in the _Control table is &amp;lt;&amp;gt;% then the attribute value is taken from the _Controls table, and joined with the corresponding attribute form _Data.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;It is not so elegant, but is should work.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;PRE&gt;// ***************************************************************************&lt;BR /&gt;// * First combination: AttrA=% AttrB=% AttrC=% AttrD=% AttrE=%&lt;BR /&gt;// ***************************************************************************&lt;BR /&gt;_Tmp1:&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  Id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_ControlId&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_ControlType&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Account&lt;/SPAN&gt;&lt;BR /&gt;Resident _Controls&lt;BR /&gt;Where AttributeTypeA='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeB='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeC='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeD='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeE='%';&lt;BR /&gt;Inner Join&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  Company&amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Company&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeA&amp;nbsp; &amp;nbsp;As TMP1_AttributeA&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeB&amp;nbsp; &amp;nbsp;As TMP1_AttributeB&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeC&amp;nbsp; &amp;nbsp;As TMP1_AttributeC&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeD&amp;nbsp; &amp;nbsp;As TMP1_AttributeD&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeE&amp;nbsp; &amp;nbsp;As TMP1_AttributeE&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Currency&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_Currency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Amount&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_Amount&lt;/SPAN&gt;&lt;BR /&gt;Resident _Data;&lt;BR /&gt;&lt;BR /&gt;// ************************************************************&lt;BR /&gt;// * For the first combination, table _Tmp is created&lt;BR /&gt;// ************************************************************&lt;BR /&gt;_Tmp:&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  TMP1_ControlId&amp;nbsp; &amp;nbsp;As TMP_ControlId&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_ControlType As TMP_ControlType&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Account&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeA&amp;nbsp; As TMP_AttributeA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeB&amp;nbsp; As TMP_AttributeB&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeC&amp;nbsp; As TMP_AttributeC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeD&amp;nbsp; As TMP_AttributeD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeE&amp;nbsp; As TMP_AttributeE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Currency&amp;nbsp; &amp;nbsp; As TMP_Currency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Amount&amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP_Amount&lt;/SPAN&gt;&lt;BR /&gt;Resident _Tmp1;&lt;BR /&gt;&lt;BR /&gt;Drop Table _Tmp1;&lt;BR /&gt;&lt;BR /&gt;// ***************************************************************************&lt;BR /&gt;// * Second combination: AttrA=% AttrB=% AttrC=% AttrD=% AttrE&amp;lt;&amp;gt;%&lt;BR /&gt;// ***************************************************************************&lt;BR /&gt;_Tmp1:&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  Id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_ControlId&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_ControlType&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeTypeE As TMP1_AttributeE&lt;/SPAN&gt;&lt;BR /&gt;Resident _Controls&lt;BR /&gt;Where AttributeTypeA='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeB='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeC='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeD='%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeE&amp;lt;&amp;gt;'%';&lt;BR /&gt;Inner Join&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  Company&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Company&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeA&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeA&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeB&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeB&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeC&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeC&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeD&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeD&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeE&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeE&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Currency&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_Currency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Amount&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_Amount&lt;/SPAN&gt;&lt;BR /&gt;Resident _Data;&lt;BR /&gt;&lt;BR /&gt;// ************************************************************&lt;BR /&gt;// * For the following combinations, table _Tmp is concatenated&lt;BR /&gt;// ************************************************************&lt;BR /&gt;Concatenate(_Tmp)&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  TMP1_ControlId&amp;nbsp; &amp;nbsp;As TMP_ControlId&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_ControlType As TMP_ControlType&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Account&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeA&amp;nbsp; As TMP_AttributeA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeB&amp;nbsp; As TMP_AttributeB&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeC&amp;nbsp; As TMP_AttributeC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeD&amp;nbsp; As TMP_AttributeD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeE&amp;nbsp; As TMP_AttributeE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Currency&amp;nbsp; &amp;nbsp; As TMP_Currency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Amount&amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP_Amount&lt;/SPAN&gt;&lt;BR /&gt;Resident _Tmp1;&lt;BR /&gt;&lt;BR /&gt;Drop Table _Tmp1;&lt;BR /&gt;..........................&lt;BR /&gt;&lt;BR /&gt;// ***************************************************************************&lt;BR /&gt;// * Last combination: AttrA&amp;lt;&amp;gt;% AttrB&amp;lt;&amp;gt;% AttrC&amp;lt;&amp;gt;% AttrD&amp;lt;&amp;gt;% AttrE&amp;lt;&amp;gt;%&lt;BR /&gt;// ***************************************************************************&lt;BR /&gt;_Tmp1:&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  Id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_ControlId&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_ControlType&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeTypeA As TMP1_AttributeA&lt;BR /&gt; ,AttributeTypeB As TMP1_AttributeB&lt;BR /&gt; ,AttributeTypeC As TMP1_AttributeC&lt;BR /&gt; ,AttributeTypeD As TMP1_AttributeD&lt;BR /&gt; ,AttributeTypeE As TMP1_AttributeE&lt;/SPAN&gt;&lt;BR /&gt;Resident _Controls&lt;BR /&gt;Where AttributeTypeA&amp;lt;&amp;gt;'%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeB&amp;lt;&amp;gt;'%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeC&amp;lt;&amp;gt;'%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeD&amp;lt;&amp;gt;'%'&lt;BR /&gt;And&amp;nbsp; &amp;nbsp;AttributeTypeE&amp;lt;&amp;gt;'%';&lt;BR /&gt;Inner Join&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  Company&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Company&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Account&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP1_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeA&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeA&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeB&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeB&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeC&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeC&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeD&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeD&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,AttributeE&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_AttributeE&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Currency&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_Currency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,Amount&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP1_Amount&lt;/SPAN&gt;&lt;BR /&gt;Resident _Data;&lt;BR /&gt;&lt;BR /&gt;// ************************************************************&lt;BR /&gt;// * Table _Tmp is concatenated&lt;BR /&gt;// ************************************************************&lt;BR /&gt;Concatenate(_Tmp)&lt;BR /&gt;Load&lt;BR /&gt;&lt;SPAN&gt;  TMP1_ControlId&amp;nbsp; &amp;nbsp;As TMP_ControlId&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_ControlType As TMP_ControlType&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Account&amp;nbsp; &amp;nbsp; &amp;nbsp;As TMP_Account&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeA&amp;nbsp; As TMP_AttributeA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeB&amp;nbsp; As TMP_AttributeB&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeC&amp;nbsp; As TMP_AttributeC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeD&amp;nbsp; As TMP_AttributeD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_AttributeE&amp;nbsp; As TMP_AttributeE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Currency&amp;nbsp; &amp;nbsp; As TMP_Currency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; ,TMP1_Amount&amp;nbsp; &amp;nbsp; &amp;nbsp; As TMP_Amount&lt;/SPAN&gt;&lt;BR /&gt;Resident _Tmp1;&lt;BR /&gt;&lt;BR /&gt;Drop Table _Tmp1;&lt;/PRE&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;The resulting table counts around 750.000 rows.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;I posted my solution hoping somebody could suggest a more "clean" solution, and hoping it could be useful for somebody else with similar problem.&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Thanks for your eventual comments / suggestions&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;Corrado&lt;/DIV&gt;</description>
      <pubDate>Sun, 06 Aug 2023 15:36:39 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/How-to-join-with-filtering-based-on-both-tables/m-p/2102885#M1224350</guid>
      <dc:creator>cvillani</dc:creator>
      <dc:date>2023-08-06T15:36:39Z</dc:date>
    </item>
  </channel>
</rss>

