<?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: Joining two slowly changing tables in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Joining-two-slowly-changing-tables/m-p/455485#M1156500</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would use a While loop to create the dates in the interval. But it can be done with intervalmatch also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The solution contains three synthetic keys, but in this case they are correct and - in fact the most efficient solution. If you want you can probably change the script to manually created composite keys instead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/HIC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TableA:&lt;/P&gt;&lt;P&gt;Load SystemID as SystemIDA, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(Start) as StartA, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(End) as EndA &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inline&lt;/P&gt;&lt;P&gt;[SystemID, Status, Start, End&lt;/P&gt;&lt;P&gt;1, Active, 1/1/2011, 5/31/2011&lt;/P&gt;&lt;P&gt;1, Closed, 6/1/2011, 10/31/2011&lt;/P&gt;&lt;P&gt;1, Active, 11/1/2011, 2/31/2013&lt;/P&gt;&lt;P&gt;2, Active, 1/1/2012, 12/31/2012&lt;/P&gt;&lt;P&gt;2, Closed, 1/1/2013, 2/31/2013];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TableB:&lt;/P&gt;&lt;P&gt;Load SystemID as SystemIDB, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Territory, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(Start) as StartB, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(End) as EndB &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inline&lt;/P&gt;&lt;P&gt;[SystemID, Territory, Start, End&lt;/P&gt;&lt;P&gt;1, A, 1/1/2011, 12/31/2011&lt;/P&gt;&lt;P&gt;1, B, 1/1/2012, 2/31/2013&lt;/P&gt;&lt;P&gt;2, C, 1/1/2012, 5/31/2012&lt;/P&gt;&lt;P&gt;2, B, 6/1/2012, 2/31/2013];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IntervalMatchA:&lt;/P&gt;&lt;P&gt;Load SystemIDA as SystemID, StartA, EndA,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Load *,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date(StartA + IterNo() - 1) as Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resident TableA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While IterNo() &amp;lt;= EndA - StartA + 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IntervalMatchB:&lt;/P&gt;&lt;P&gt;Load SystemIDB as SystemID, StartB, EndB,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Load *,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date(StartB + IterNo() - 1) as Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resident TableB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While IterNo() &amp;lt;= EndB - StartB + 1;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 Feb 2013 15:57:17 GMT</pubDate>
    <dc:creator>hic</dc:creator>
    <dc:date>2013-02-20T15:57:17Z</dc:date>
    <item>
      <title>Joining two slowly changing tables</title>
      <link>https://community.qlik.com/t5/QlikView/Joining-two-slowly-changing-tables/m-p/455484#M1156499</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all - &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have two tables that are slowly chaging, but with a common OK.&amp;nbsp;&amp;nbsp; I need to join them.&amp;nbsp; I've seen the IntervalMatch examples, but I'm not sure how to manage it with two slowly changing tables instead of one.&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TableA:&lt;/P&gt;&lt;P&gt;SystemID, Status, Start, End&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;1, Active, 1/1/2011,&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;5/31/2011&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;1, Closed, 6/1/2011, 10/31/2011&lt;/P&gt;&lt;P&gt;1, Active, 11/1/2011, 2/31/2013&lt;/P&gt;&lt;P&gt;2, Active, 1/1/2012, 12/31/2012&lt;/P&gt;&lt;P&gt;2, Closed, 1/1/2013. 2/31/2013&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TableB:&lt;/P&gt;&lt;P&gt;SystemID, Territory, Start, End&lt;/P&gt;&lt;P&gt;1, A, 1/1/2011, 12/31/2011&lt;/P&gt;&lt;P&gt;1, B, 1/1/2012, 2/31/2013&lt;/P&gt;&lt;P&gt;2, C, 1/1/2012, 5/31/2012&lt;/P&gt;&lt;P&gt;2, B, 6/1/2012, 2/31/2013&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Resulting table should be:&lt;/P&gt;&lt;P&gt;Final:&lt;/P&gt;&lt;P&gt;System ID, Status, Territory, Start, End&lt;/P&gt;&lt;P&gt;1, Active, A, 1/1/2011,&lt;SPAN style="font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;5/31/2011&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;1, Closed, A, 6/1/2011, 10/31/2011&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;1, Active, A, 11/1/2011, 12/31/2011&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;1, Active, B, 1/1/2012, 12/31/2011&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;2, Active,C, 1/1/2012, 5/31/2012&lt;/P&gt;&lt;P&gt;2, Active,B, /61/2012, 12/31/2012&lt;/P&gt;&lt;P&gt;2, Closed,B, 1/1/2013. 2/31/2013&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Feb 2013 15:36:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Joining-two-slowly-changing-tables/m-p/455484#M1156499</guid>
      <dc:creator />
      <dc:date>2013-02-20T15:36:05Z</dc:date>
    </item>
    <item>
      <title>Re: Joining two slowly changing tables</title>
      <link>https://community.qlik.com/t5/QlikView/Joining-two-slowly-changing-tables/m-p/455485#M1156500</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would use a While loop to create the dates in the interval. But it can be done with intervalmatch also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The solution contains three synthetic keys, but in this case they are correct and - in fact the most efficient solution. If you want you can probably change the script to manually created composite keys instead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/HIC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TableA:&lt;/P&gt;&lt;P&gt;Load SystemID as SystemIDA, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(Start) as StartA, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(End) as EndA &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inline&lt;/P&gt;&lt;P&gt;[SystemID, Status, Start, End&lt;/P&gt;&lt;P&gt;1, Active, 1/1/2011, 5/31/2011&lt;/P&gt;&lt;P&gt;1, Closed, 6/1/2011, 10/31/2011&lt;/P&gt;&lt;P&gt;1, Active, 11/1/2011, 2/31/2013&lt;/P&gt;&lt;P&gt;2, Active, 1/1/2012, 12/31/2012&lt;/P&gt;&lt;P&gt;2, Closed, 1/1/2013, 2/31/2013];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TableB:&lt;/P&gt;&lt;P&gt;Load SystemID as SystemIDB, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Territory, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(Start) as StartB, &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date#(End) as EndB &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inline&lt;/P&gt;&lt;P&gt;[SystemID, Territory, Start, End&lt;/P&gt;&lt;P&gt;1, A, 1/1/2011, 12/31/2011&lt;/P&gt;&lt;P&gt;1, B, 1/1/2012, 2/31/2013&lt;/P&gt;&lt;P&gt;2, C, 1/1/2012, 5/31/2012&lt;/P&gt;&lt;P&gt;2, B, 6/1/2012, 2/31/2013];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IntervalMatchA:&lt;/P&gt;&lt;P&gt;Load SystemIDA as SystemID, StartA, EndA,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Load *,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date(StartA + IterNo() - 1) as Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resident TableA&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While IterNo() &amp;lt;= EndA - StartA + 1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IntervalMatchB:&lt;/P&gt;&lt;P&gt;Load SystemIDB as SystemID, StartB, EndB,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Load *,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Date(StartB + IterNo() - 1) as Date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resident TableB&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While IterNo() &amp;lt;= EndB - StartB + 1;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Feb 2013 15:57:17 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Joining-two-slowly-changing-tables/m-p/455485#M1156500</guid>
      <dc:creator>hic</dc:creator>
      <dc:date>2013-02-20T15:57:17Z</dc:date>
    </item>
    <item>
      <title>Re: Joining two slowly changing tables</title>
      <link>https://community.qlik.com/t5/QlikView/Joining-two-slowly-changing-tables/m-p/455486#M1156501</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;STRONG&gt;Thanks!&lt;/STRONG&gt;&lt;/SPAN&gt; This get's me what need, I can then load a table from them and drop the old ones.&amp;nbsp; I searched around, but all of the examples were fact to slowly changing dimension. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Strangely, I have a couple of extra days in the Date field that aren't in the source - 3/1/2013-3/3/2013, but I'll figure that out.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Feb 2013 17:22:58 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Joining-two-slowly-changing-tables/m-p/455486#M1156501</guid>
      <dc:creator />
      <dc:date>2013-02-20T17:22:58Z</dc:date>
    </item>
  </channel>
</rss>

