<?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: Design data mode to support all join type from UI selection in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922517#M319521</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's quite unclear what do you want to do. Should it be (executed) on script-level or only to display data within the gui? And why (so complicated)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 31 Jul 2015 10:11:09 GMT</pubDate>
    <dc:creator>marcus_sommer</dc:creator>
    <dc:date>2015-07-31T10:11:09Z</dc:date>
    <item>
      <title>Design data mode to support all join type from UI selection</title>
      <link>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922516#M319520</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have tables as following and trying to design the data model that can support all different join types based on user section. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From UI a list box with values as following (from SELECTION_TYPE columns) &lt;/P&gt;&lt;P&gt;&lt;IMG alt="sel.jpg" class="jive-image image-1" src="https://community.qlik.com/legacyfs/online/94602_sel.jpg" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Case 1:&amp;nbsp; User selects &lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;STRONG style="color: #ff0000;"&gt;TABLE_A *(All records in Table - A)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Output table: &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="99" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#000000&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;,&amp;quot;verticalAlign&amp;quot;:&amp;quot;baseline&amp;quot;}" style="border: 1px solid rgb(0, 0, 0); width: 351px; height: 80px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;TABLE_A.ID&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Table_A_Value &lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;TABLE_B.ID&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Table_B_Value&lt;/SPAN&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;101&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;abc&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;102&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;xyz&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;102&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;beta&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;103&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;pqr&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Case 2:&amp;nbsp; User selects &lt;STRONG style="color: #ff0000;"&gt;TABLE_A + TABLE_B *(All records in Table A and Table B)&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Output table: &lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="49" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#000000&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;,&amp;quot;verticalAlign&amp;quot;:&amp;quot;baseline&amp;quot;}" style="border: 1px solid #000000; font-size: 13.3333330154419px; width: 351px; height: 39px;" width="351"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;TABLE_A.ID&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Table_A_Value &lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;TABLE_B.ID&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Table_B_Value&lt;/SPAN&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;102&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;xyz&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;102&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;beta&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;Case 3:&amp;nbsp; User selects &lt;STRONG style="color: #ff0000;"&gt;TABLE_B - TABLE_A *(All records in Table B but not in Table A)&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 13.3333330154419px;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Output table: &lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="99" jive-data-cell="{&amp;quot;color&amp;quot;:&amp;quot;#000000&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;left&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;}" jive-data-header="{&amp;quot;color&amp;quot;:&amp;quot;#FFFFFF&amp;quot;,&amp;quot;backgroundColor&amp;quot;:&amp;quot;#6690BC&amp;quot;,&amp;quot;textAlign&amp;quot;:&amp;quot;center&amp;quot;,&amp;quot;padding&amp;quot;:&amp;quot;2&amp;quot;,&amp;quot;fontFamily&amp;quot;:&amp;quot;arial,helvetica,sans-serif&amp;quot;,&amp;quot;verticalAlign&amp;quot;:&amp;quot;baseline&amp;quot;}" style="border: 1px solid #000000; width: 351px; height: 80px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;TABLE_A.ID&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Table_A_Value &lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;TABLE_B.ID&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Table_B_Value&lt;/SPAN&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;201&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;alpha&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;-&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;303&lt;/TD&gt;&lt;TD style="padding: 2px;"&gt;gama&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Similarly the other cases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tables as following&lt;/P&gt;&lt;P&gt;SELECTION_TYPE:&lt;/P&gt;&lt;P&gt;LOAD * INLINE&lt;/P&gt;&lt;P&gt;[&lt;/P&gt;&lt;P&gt;SELECTION_ID,SELECTION_TYPE&lt;/P&gt;&lt;P&gt;1, TABLE_A *(All records in Table - A)&lt;/P&gt;&lt;P&gt;2, TABLE_B *(All records in Table - B)&lt;/P&gt;&lt;P&gt;3, TABLE_A - TABLE_B *(All records in Table A but not in Table B)&lt;/P&gt;&lt;P&gt;4, TABLE_A + TABLE_B *(All records in Table A and Table B)&lt;/P&gt;&lt;P&gt;5, TABLE_B - TABLE_A *(All records in Table B but not in Table A)&lt;/P&gt;&lt;P&gt;];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLE_A:&lt;/P&gt;&lt;P&gt;LOAD * INLINE&lt;/P&gt;&lt;P&gt;[&lt;/P&gt;&lt;P&gt;ID , Table_A_Value&lt;/P&gt;&lt;P&gt;101, abc&lt;/P&gt;&lt;P&gt;102, xyz&lt;/P&gt;&lt;P&gt;103, pqr&lt;/P&gt;&lt;P&gt;];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLE_B:&lt;/P&gt;&lt;P&gt;LOAD * INLINE&lt;/P&gt;&lt;P&gt;[&lt;/P&gt;&lt;P&gt;ID , Table_B_Value&lt;/P&gt;&lt;P&gt;201, alpha&lt;/P&gt;&lt;P&gt;102, beta&lt;/P&gt;&lt;P&gt;303, gama&lt;/P&gt;&lt;P&gt;];&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jul 2015 19:20:33 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922516#M319520</guid>
      <dc:creator />
      <dc:date>2015-07-30T19:20:33Z</dc:date>
    </item>
    <item>
      <title>Re: Design data mode to support all join type from UI selection</title>
      <link>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922517#M319521</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It's quite unclear what do you want to do. Should it be (executed) on script-level or only to display data within the gui? And why (so complicated)?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 10:11:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922517#M319521</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2015-07-31T10:11:09Z</dc:date>
    </item>
    <item>
      <title>Re: Design data mode to support all join type from UI selection</title>
      <link>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922518#M319522</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;My apologies if it was not clear before. Let me try to explain as following..&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;The idea is to find the best possible design for all selection types as per the SECTION_TYPE values in the UI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regarding the complicatedness - I can't speak about others how they have approached these type of problems (since i am still new to qlik) , but the requirement is pretty common in the BI world, we have all type of join in relational world (not that i mean they are not in qlik) but qlik is association model, so any selections will affect entire data model.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;User should have ability to&amp;nbsp; select certain value in the list box&amp;nbsp; (i mean the SELECTION_TYPE) to set the context for other filtering or calculations for his/her next level of selections.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's put with an example-&lt;/P&gt;&lt;P&gt;Example : Assume I have Amount column in TABLE_A (i could have given better column names/values in my previous post) .&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="94698" alt="sel.jpg" class="jive-image image-1" src="https://community.qlik.com/legacyfs/online/94698_sel.jpg" style="height: auto;" /&gt;&lt;/P&gt;&lt;P&gt;CASE 1:&lt;STRONG style="font-size: 13.3333320617676px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #ff0000;"&gt;TABLE_A *(All records in Table - A). &lt;/STRONG&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Meaning the context made to LEFT JOIN to TABLE A (if you consider) &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUM(AMOUNT) -&amp;nbsp; will include all rows from TABLE_A&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE 2: &lt;SPAN style="font-size: 13.3333320617676px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #ff0000;"&gt;&lt;STRONG&gt;TABLE_A + TABLE_B *(All records in Table A and Table B). &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #ff0000; font-size: 13.3333330154419px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Meaning the context made to INNER JOIN.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&amp;nbsp; SUM(AMOUNT) -&amp;nbsp; will include only rows from TABLE_A, that match TABLE_B. which ideally return value i.e. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;CASE2 of SUM(AMOUNT) &amp;lt;= CASE1 of SUM(AMOUNT) , because we will have equal or fewer records since the user is intended to set the context to INNER JOIN for all the expressions in the sheet.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;Similarly the other values in the list box....&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;I hope i could now explain much better than i was before. &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 13:44:18 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922518#M319522</guid>
      <dc:creator />
      <dc:date>2015-07-31T13:44:18Z</dc:date>
    </item>
    <item>
      <title>Re: Design data mode to support all join type from UI selection</title>
      <link>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922519#M319523</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;That's not the way how qlikview worked. I have the impression that your thinking comes from a sql-world and within qlikview it's a lot easier to build a proper datamodel which contains all associations. I suggest you started here &lt;A href="https://community.qlik.com/docs/DOC-8844"&gt;Get started with developing qlik datamodels&lt;/A&gt; and tries to build a very simple datamodel with star-sheme at the beginning and check how the data looked in tables and then add step by step more complexity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Marcus&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 31 Jul 2015 13:58:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922519#M319523</guid>
      <dc:creator>marcus_sommer</dc:creator>
      <dc:date>2015-07-31T13:58:57Z</dc:date>
    </item>
    <item>
      <title>Re: Design data mode to support all join type from UI selection</title>
      <link>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922520#M319524</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks a lot Marcus for your comments. Though i was aware, In qlik it's different view in terms of data model due to it's association approach. I was initially thinking would it be possible to create a data model that would easy the UI or front end people, so that they can benefit from not knowing set analysis and functions related to it.&amp;nbsp; But I realize that it's not a good idea and makes the data model more complex and could lead to duplicate results. I agree with you 100%.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Aug 2015 23:46:26 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Design-data-mode-to-support-all-join-type-from-UI-selection/m-p/922520#M319524</guid>
      <dc:creator />
      <dc:date>2015-08-05T23:46:26Z</dc:date>
    </item>
  </channel>
</rss>

