<?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: Calculate Time duration between Rows in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660056#M594325</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;a good challenge &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;attached the qlikview file.&lt;BR /&gt;the code is a little long, but it's to explain the logic, otherwise you can optimize it.&lt;/P&gt;&lt;P&gt;the result :&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 542px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/25910iD012A474534876EE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;otherwise the load script is :&lt;/P&gt;&lt;LI-CODE lang="python"&gt;Input:

LOAD 
    RowNo() as ID,
    tunid, 
    Date(datetime,'DD/MM/YYYY hh:mm:ss') as datetime, 
    di1
FROM
.\DATA_COM.xlsx
(ooxml, embedded labels, table is Feuil1);

temps1:
Noconcatenate
LOAD
*,
if(ID=1,'First Occurance of 1',if((di1=1 and previous(di1)=0),'First Occurance of 1 after 0',if((di1=0 and previous(di1)=1),'First Occurance of 0 after 1'))) as Flag1,
if(ID=1,'0',if((di1=1 and previous(di1)=0),'1',if((di1=0 and previous(di1)=1),'2'))) as FlagNum,
if(di1=1,'Moving','Stoped') as Flag2

    resident Input
    order by ID;

    DROP TABLE Input;

temps2:
Noconcatenate
LOAD
*,

if(FlagNum='0',datetime,if(FlagNum='1' or FlagNum='2',(datetime))) as ToDate,

if(FlagNum='0',ID,if(FlagNum='1' or FlagNum='2',(ID))) as FlagRow

    resident temps1
    order by ID;

    DROP TABLE temps1;

temps3:
Noconcatenate
LOAD
distinct FlagRow,Flag1,ToDate

    resident temps2
 order by FlagRow;

    DROP TABLE temps2;

 
 Final:
Noconcatenate
LOAD *,
num(if(FlagRow&amp;lt;&amp;gt;1,(ToDate-previous(ToDate))*60*24),'###0,00') as Duration

    resident temps3
order by FlagRow;

    DROP TABLE temps3;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 23 Dec 2019 10:22:10 GMT</pubDate>
    <dc:creator>Taoufiq_Zarra</dc:creator>
    <dc:date>2019-12-23T10:22:10Z</dc:date>
    <item>
      <title>Calculate Time duration between Rows</title>
      <link>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1659999#M594324</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Hope all is well with everyone.&lt;/P&gt;&lt;P&gt;We are working on a fleet management system and have a scenario in which we have to sum the time (in mins) for Engine On and Engine Off.&lt;/P&gt;&lt;P&gt;We have 3 fields - TunID, DateTime, di1&lt;/P&gt;&lt;P&gt;What we want to do is for each TunID we would to calculate the time between&lt;/P&gt;&lt;P&gt;* when di1=1 and di1=0 - Engine On&lt;BR /&gt;* when di1=0 and di1=1 - Engine Off&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please find attached the excel sheet showing the logic and how it is calculated&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;TunID&lt;/TD&gt;&lt;TD&gt;DateTime&lt;/TD&gt;&lt;TD&gt;di1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/20/19 11:45 PM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/21/19 3:47 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/21/19 4:59 PM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/21/19 5:08 PM&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/21/19 8:18 PM&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/21/19 9:31 PM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/21/19 9:46 PM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 2:07 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 2:27 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 2:31 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 4:14 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 9:18 AM&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 9:36 AM&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 9:49 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 10:19 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 10:34 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 11:58 AM&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;12/22/19 1:19 PM&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;will appreciate if someone can share the logic how we can do it in Qlik.&amp;nbsp; For each block of 1&amp;amp;0 we have to look at the first occurrence of 1 and first occurrence of 0 and then calculate the time from 1 to 0.&lt;/P&gt;&lt;P&gt;Thanks in advance&lt;/P&gt;</description>
      <pubDate>Sun, 22 Dec 2019 19:12:25 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1659999#M594324</guid>
      <dc:creator>malimohammed</dc:creator>
      <dc:date>2019-12-22T19:12:25Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Time duration between Rows</title>
      <link>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660056#M594325</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;a good challenge &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;attached the qlikview file.&lt;BR /&gt;the code is a little long, but it's to explain the logic, otherwise you can optimize it.&lt;/P&gt;&lt;P&gt;the result :&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 542px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/25910iD012A474534876EE/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;otherwise the load script is :&lt;/P&gt;&lt;LI-CODE lang="python"&gt;Input:

LOAD 
    RowNo() as ID,
    tunid, 
    Date(datetime,'DD/MM/YYYY hh:mm:ss') as datetime, 
    di1
FROM
.\DATA_COM.xlsx
(ooxml, embedded labels, table is Feuil1);

temps1:
Noconcatenate
LOAD
*,
if(ID=1,'First Occurance of 1',if((di1=1 and previous(di1)=0),'First Occurance of 1 after 0',if((di1=0 and previous(di1)=1),'First Occurance of 0 after 1'))) as Flag1,
if(ID=1,'0',if((di1=1 and previous(di1)=0),'1',if((di1=0 and previous(di1)=1),'2'))) as FlagNum,
if(di1=1,'Moving','Stoped') as Flag2

    resident Input
    order by ID;

    DROP TABLE Input;

temps2:
Noconcatenate
LOAD
*,

if(FlagNum='0',datetime,if(FlagNum='1' or FlagNum='2',(datetime))) as ToDate,

if(FlagNum='0',ID,if(FlagNum='1' or FlagNum='2',(ID))) as FlagRow

    resident temps1
    order by ID;

    DROP TABLE temps1;

temps3:
Noconcatenate
LOAD
distinct FlagRow,Flag1,ToDate

    resident temps2
 order by FlagRow;

    DROP TABLE temps2;

 
 Final:
Noconcatenate
LOAD *,
num(if(FlagRow&amp;lt;&amp;gt;1,(ToDate-previous(ToDate))*60*24),'###0,00') as Duration

    resident temps3
order by FlagRow;

    DROP TABLE temps3;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 23 Dec 2019 10:22:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660056#M594325</guid>
      <dc:creator>Taoufiq_Zarra</dc:creator>
      <dc:date>2019-12-23T10:22:10Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Time duration between Rows</title>
      <link>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660438#M594326</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/25988iF53A9932FEE09C96/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;Thanks Tauofiq,&lt;/P&gt;&lt;P&gt;Can we go like this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;t1:&lt;BR /&gt;LOAD&lt;BR /&gt;tunid,&lt;BR /&gt;datetime,&lt;BR /&gt;di1,&lt;BR /&gt;IF(di1&amp;lt;&amp;gt;Peek(di1) ,datetime) as Cal_Date&lt;BR /&gt;FROM [lib://DATASOURCE/LogFile.xlsx]&lt;BR /&gt;(ooxml, embedded labels, table is Sheet1) where IF(di1&amp;lt;&amp;gt;Peek(di1) ,datetime)&amp;gt;1;&lt;BR /&gt;//group by tunid,datetime, di1;&lt;/P&gt;&lt;P&gt;Load *,&lt;/P&gt;&lt;P&gt;num(Interval(Cal_Date-Previous(Cal_Date))*60*24,'###0,00') as TimeDiff Resident t1;&lt;/P&gt;&lt;P&gt;Drop Table t1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Dec 2019 11:19:42 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660438#M594326</guid>
      <dc:creator>RUNIL</dc:creator>
      <dc:date>2019-12-24T11:19:42Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Time duration between Rows</title>
      <link>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660440#M594327</link>
      <description>&lt;P&gt;you need to verify the expected outpout &lt;span class="lia-unicode-emoji" title=":thumbs_up:"&gt;👍&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Dec 2019 11:01:51 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660440#M594327</guid>
      <dc:creator>Taoufiq_Zarra</dc:creator>
      <dc:date>2019-12-24T11:01:51Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Time duration between Rows</title>
      <link>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660451#M594328</link>
      <description>&lt;P&gt;Output verified . Its exactly same.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/25989i27DAFCDCD77148BA/image-size/large?v=v2&amp;amp;px=999" role="button" title="Capture.PNG" alt="Capture.PNG" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Dec 2019 11:21:13 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660451#M594328</guid>
      <dc:creator>RUNIL</dc:creator>
      <dc:date>2019-12-24T11:21:13Z</dc:date>
    </item>
    <item>
      <title>Re: Calculate Time duration between Rows</title>
      <link>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660455#M594329</link>
      <description>&lt;P&gt;Awesome,&lt;BR /&gt;you can accept both solutions as 'Solution'&lt;/P&gt;</description>
      <pubDate>Tue, 24 Dec 2019 11:26:02 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Calculate-Time-duration-between-Rows/m-p/1660455#M594329</guid>
      <dc:creator>Taoufiq_Zarra</dc:creator>
      <dc:date>2019-12-24T11:26:02Z</dc:date>
    </item>
  </channel>
</rss>

