<?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 Unable to remove synthetic keys in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Unable-to-remove-synthetic-keys/m-p/87421#M14279</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi folks , &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a scenario in which i need to aggregate monthly&amp;nbsp; numbers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lets say i have daily product sales, i want 1 row per month per product&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is what i am doing : &lt;/P&gt;&lt;P&gt;I am using a for loop to run 7 times (once each month from Jan to July)&lt;/P&gt;&lt;P&gt;In a TMP_TABLE , i read data from start date to end date ( for e.g Jan 01,2018- Jan 31,2018)&lt;/P&gt;&lt;P&gt;Then in MAIN_TABLE , i aggregate it , doing an order by.&lt;/P&gt;&lt;P&gt;I have these keys in main table:&lt;/P&gt;&lt;P&gt;1.KEY_DATE_PRODUCT_ID -&amp;gt; e.g JAN_2018_1006 (1006 is my product id)&lt;/P&gt;&lt;P&gt;2.PRODUCT_ID&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; 1006&lt;/P&gt;&lt;P&gt;3.DATE_MONTH&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;Jan&lt;/P&gt;&lt;P&gt;4.DATE_YEAR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;2018&lt;/P&gt;&lt;P&gt;5.DATE_MONTHYEAR&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; -&amp;gt;Jan-2018&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apart from this i have an aggregate Sales Column SUM(SALES)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When this loop runs 7 times , i get 7 tables created in my data model with all above 5 keys in synthetic table.&lt;/P&gt;&lt;P&gt;Hence in the end there is a single main table , with all the rows duplicated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can i avoid it ? &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 31 Jul 2018 09:31:28 GMT</pubDate>
    <dc:creator>swatiras</dc:creator>
    <dc:date>2018-07-31T09:31:28Z</dc:date>
    <item>
      <title>Unable to remove synthetic keys</title>
      <link>https://community.qlik.com/t5/QlikView/Unable-to-remove-synthetic-keys/m-p/87421#M14279</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi folks , &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a scenario in which i need to aggregate monthly&amp;nbsp; numbers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lets say i have daily product sales, i want 1 row per month per product&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is what i am doing : &lt;/P&gt;&lt;P&gt;I am using a for loop to run 7 times (once each month from Jan to July)&lt;/P&gt;&lt;P&gt;In a TMP_TABLE , i read data from start date to end date ( for e.g Jan 01,2018- Jan 31,2018)&lt;/P&gt;&lt;P&gt;Then in MAIN_TABLE , i aggregate it , doing an order by.&lt;/P&gt;&lt;P&gt;I have these keys in main table:&lt;/P&gt;&lt;P&gt;1.KEY_DATE_PRODUCT_ID -&amp;gt; e.g JAN_2018_1006 (1006 is my product id)&lt;/P&gt;&lt;P&gt;2.PRODUCT_ID&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; 1006&lt;/P&gt;&lt;P&gt;3.DATE_MONTH&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;Jan&lt;/P&gt;&lt;P&gt;4.DATE_YEAR&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt;2018&lt;/P&gt;&lt;P&gt;5.DATE_MONTHYEAR&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; -&amp;gt;Jan-2018&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apart from this i have an aggregate Sales Column SUM(SALES)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When this loop runs 7 times , i get 7 tables created in my data model with all above 5 keys in synthetic table.&lt;/P&gt;&lt;P&gt;Hence in the end there is a single main table , with all the rows duplicated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How can i avoid it ? &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jul 2018 09:31:28 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Unable-to-remove-synthetic-keys/m-p/87421#M14279</guid>
      <dc:creator>swatiras</dc:creator>
      <dc:date>2018-07-31T09:31:28Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to remove synthetic keys</title>
      <link>https://community.qlik.com/t5/QlikView/Unable-to-remove-synthetic-keys/m-p/87422#M14280</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You probably don't need to loop at all. You can read all the months at once unless they come from a database where the months data come from different tables or if they come from files and reside in different folders. Why do you need to use an ORDER BY and a temporary table? Qlik index all fields at the end of the load script execution anyway. Sometimes ORDER BY is necessary for some inter-record functions with logic to work correctly - which is one of the main reasons I use ORDER BY. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Even if you have to do looping it shouldn't be a problem with synthetic keys except that you make sure you don't repeat the same fields unnecessary in different tables that already have a key on a date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In your case I guess it could look something like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;DETAILS&lt;/STRONG&gt;:&lt;/P&gt;&lt;P&gt;LOAD * INLINE [&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;PRODUCT_ID&lt;/SPAN&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px;"&gt;]; // Create an empty table with just one field.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;FOR t=1 TO 7&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CONCATENATE &lt;STRONG&gt;LOAD&lt;/STRONG&gt;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEY_DATE_PRODUCT_ID,&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRODUCT_ID,&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATE_MONTH ,&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATE_YEAR,&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DATE_MONTHYEAR,&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [...........];&lt;/P&gt;&lt;P&gt;NEXT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;MAIN:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;LOAD&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEY_DATE_PRODUCT_ID,&amp;nbsp;&amp;nbsp; // This is the only key you need - will avoid synthetic&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sum(SALES) AS SumSales&lt;/P&gt;&lt;P&gt;RESIDENT&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DETAILS&lt;/P&gt;&lt;P&gt;GROUP BY&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEY_DATE_PRODUCT_ID;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lastly I can't see much benefit of doing an aggregation in the load script as it is just as easy to do it in you UI directly in the charts and tables...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 31 Jul 2018 15:59:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Unable-to-remove-synthetic-keys/m-p/87422#M14280</guid>
      <dc:creator>petter</dc:creator>
      <dc:date>2018-07-31T15:59:01Z</dc:date>
    </item>
  </channel>
</rss>

