<?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: Looping in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Looping/m-p/278697#M710730</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It can also be done with a while loop. (Edit:&amp;nbsp; I'm not saying this is better than intervalmatch for this case, just that it's an alternative that may be better for SOME cases, so I think is worth mentioning.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;NewTable:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;LOAD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;ID&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;,AMOUNT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;,date(VALID_FROM + 1 - iterno()) as TXN_DATE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;RESIDENT Data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;WHILE VALID_FROM + 1 - iterno() &amp;lt; VALID_TO&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not sure why you'd put AMOUNT on this table, though.&amp;nbsp; And I would think you'd want to include VALID_TO as a TXN_DATE, but you don't appear to.&amp;nbsp; If you meant to include it, just use &amp;lt;= instead of &amp;lt;.&amp;nbsp; Also, I was unclear what was going on with your 1/1/5999 date.&amp;nbsp; I'd normally think that means "valid forever", where you instead treated it as "only valid for the VALID_FROM date".&amp;nbsp; My solution above treats it as valid forever.&amp;nbsp; If you don't need future dates, make sure to put in today() as a limit as well, like by doing rangemin(today(),VALID_TO).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And if we want a calendar, we can now build it from TXN_DATE:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Calendar:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;LOAD *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;,year(TXN_DATE) as TXN_YEAR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;...etc...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;LOAD date(fieldvalue('TXN_DATE',recno())) as TXN_DATE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;AUTOGENERATE fieldvaluecount('TXN_DATE')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Jun 2011 00:26:42 GMT</pubDate>
    <dc:creator>johnw</dc:creator>
    <dc:date>2011-06-11T00:26:42Z</dc:date>
    <item>
      <title>Looping</title>
      <link>https://community.qlik.com/t5/QlikView/Looping/m-p/278695#M710726</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;For example I have a table with attribute [ID; AMOUNT; VALID_FROM; VALID_TO],&lt;BR /&gt;and having these 3 records:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10/6/2011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11/6/2011&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 150&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11/6/2011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15/6/2011&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15/6/2011&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1/5999&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and I want to loop the table and create a new table with attribute [ID; AMOUNT; TXN_DATE],&lt;BR /&gt;and having output as follows:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10/6/2011&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 150&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11/6/2011&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 150&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12/6/2011&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 150&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13/6/2011&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 150&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14/6/2011&lt;/P&gt;&lt;P&gt;ACT123&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15/6/2011&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;help me out please,&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;BR /&gt;Jason&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Jun 2011 09:01:37 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Looping/m-p/278695#M710726</guid>
      <dc:creator />
      <dc:date>2011-06-10T09:01:37Z</dc:date>
    </item>
    <item>
      <title>Looping</title>
      <link>https://community.qlik.com/t5/QlikView/Looping/m-p/278696#M710728</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jason,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You probably want to investigate IntervalMatch for this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data:&lt;/P&gt;&lt;P&gt;LOAD * INLINE [&lt;/P&gt;&lt;P&gt;ID,AMOUNT,VALID_FROM,VALID_TO&lt;/P&gt;&lt;P&gt;ACT123,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10/6/2011,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11/6/2011&lt;/P&gt;&lt;P&gt;ACT123,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 150,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11/6/2011,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15/6/2011&lt;/P&gt;&lt;P&gt;ACT123,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 80,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 15/6/2011,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1/1/5999&lt;/P&gt;&lt;P&gt;];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let vMinDate=Floor(MakeDate(2011,6,10));&lt;/P&gt;&lt;P&gt;Let vMaxDate=Floor(MakeDate(2011,6,15));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Calendar:&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;TempDate As DateKey,&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(TempDate) AS DisplayDate,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Year(TempDate) As Year,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Month(TempDate) As Month,&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(TempDate) As Day;&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;RecNo()-1+$(vMinDate) As TempDate&lt;/P&gt;&lt;P&gt;AutoGenerate($(vMaxDate)-$(vMinDate)+1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DateLink:&lt;/P&gt;&lt;P&gt;IntervalMatch(DateKey)&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;VALID_FROM, VALID_TO&lt;/P&gt;&lt;P&gt;Resident&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Data;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stephen&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 10 Jun 2011 22:29:46 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Looping/m-p/278696#M710728</guid>
      <dc:creator>stephencredmond</dc:creator>
      <dc:date>2011-06-10T22:29:46Z</dc:date>
    </item>
    <item>
      <title>Re: Looping</title>
      <link>https://community.qlik.com/t5/QlikView/Looping/m-p/278697#M710730</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It can also be done with a while loop. (Edit:&amp;nbsp; I'm not saying this is better than intervalmatch for this case, just that it's an alternative that may be better for SOME cases, so I think is worth mentioning.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;NewTable:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;LOAD&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;ID&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;,AMOUNT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;,date(VALID_FROM + 1 - iterno()) as TXN_DATE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;RESIDENT Data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;WHILE VALID_FROM + 1 - iterno() &amp;lt; VALID_TO&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not sure why you'd put AMOUNT on this table, though.&amp;nbsp; And I would think you'd want to include VALID_TO as a TXN_DATE, but you don't appear to.&amp;nbsp; If you meant to include it, just use &amp;lt;= instead of &amp;lt;.&amp;nbsp; Also, I was unclear what was going on with your 1/1/5999 date.&amp;nbsp; I'd normally think that means "valid forever", where you instead treated it as "only valid for the VALID_FROM date".&amp;nbsp; My solution above treats it as valid forever.&amp;nbsp; If you don't need future dates, make sure to put in today() as a limit as well, like by doing rangemin(today(),VALID_TO).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And if we want a calendar, we can now build it from TXN_DATE:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;Calendar:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;LOAD *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;,year(TXN_DATE) as TXN_YEAR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;...etc...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;LOAD date(fieldvalue('TXN_DATE',recno())) as TXN_DATE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;AUTOGENERATE fieldvaluecount('TXN_DATE')&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Jun 2011 00:26:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Looping/m-p/278697#M710730</guid>
      <dc:creator>johnw</dc:creator>
      <dc:date>2011-06-11T00:26:42Z</dc:date>
    </item>
    <item>
      <title>Looping</title>
      <link>https://community.qlik.com/t5/QlikView/Looping/m-p/278698#M710731</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks guys, I manage to generate a similar table that I wanted, but still not 100%, I'll continue work on that. Appreciate it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 13 Jun 2011 08:50:05 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Looping/m-p/278698#M710731</guid>
      <dc:creator />
      <dc:date>2011-06-13T08:50:05Z</dc:date>
    </item>
  </channel>
</rss>

