<?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: Identify duplicates and mark them during load script in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Identify-duplicates-and-mark-them-during-load-script/m-p/1550774#M62832</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's been a while since i've posted something here, so i'm a little rusty.&lt;/P&gt;&lt;P&gt;Attached the sample app, spreadsheet used and code that is used to generate your outcome&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;tmp:&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Status,&lt;BR /&gt;[Date Submitted]&lt;BR /&gt;Resident [Planilha1];&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;tmp_count_pass:&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;count(Passcode) as Count&lt;BR /&gt;Resident tmp&lt;BR /&gt;group by&lt;BR /&gt;Passcode;&lt;/P&gt;&lt;P&gt;tmp_count_status:&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;Status,&lt;BR /&gt;count(Status) as Count_Status&lt;BR /&gt;Resident tmp&lt;BR /&gt;group by&lt;BR /&gt;Passcode,&lt;BR /&gt;Status;&lt;BR /&gt;&lt;BR /&gt;tmp_x:&lt;BR /&gt;load&lt;BR /&gt;Distinct&lt;BR /&gt;Passcode&lt;BR /&gt;Resident&lt;BR /&gt;tmp;&lt;BR /&gt;&lt;BR /&gt;left join (tmp_x)&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Count_Status as 'Partial'&lt;BR /&gt;Resident&lt;BR /&gt;tmp_count_status&lt;BR /&gt;where&lt;BR /&gt;Status = 'Partial';&lt;/P&gt;&lt;P&gt;left join (tmp_x)&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Count_Status as 'Complete'&lt;BR /&gt;Resident&lt;BR /&gt;tmp_count_status&lt;BR /&gt;where&lt;BR /&gt;Status = 'Complete';&lt;/P&gt;&lt;P&gt;left join (tmp_x)&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Count as [Row Count]&lt;BR /&gt;Resident tmp_count_pass;&lt;/P&gt;&lt;P&gt;left join (tmp_x)&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;max([Date Submitted]) as [Max Status]&lt;BR /&gt;Resident&lt;BR /&gt;[Planilha1]&lt;BR /&gt;group by&lt;BR /&gt;Passcode;&lt;BR /&gt;&lt;BR /&gt;left join (tmp_x)&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;max([Date Submitted]) as [Max Complete]&lt;BR /&gt;Resident&lt;BR /&gt;[Planilha1]&lt;BR /&gt;where&lt;BR /&gt;Status = 'Complete'&lt;BR /&gt;group by&lt;BR /&gt;Passcode;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;tmp_x_2:&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;If&lt;BR /&gt;(&lt;BR /&gt;[Row Count] = 1,&lt;BR /&gt;alt([Max Status],[Max Complete]),&lt;BR /&gt;if&lt;BR /&gt;(&lt;BR /&gt;Test = 'Mark Latest Status',&lt;BR /&gt;[Max Status],&lt;BR /&gt;if&lt;BR /&gt;(&lt;BR /&gt;Test = 'Mark Latest Complete',&lt;BR /&gt;[Max Complete]&lt;BR /&gt;)&lt;BR /&gt;)&lt;BR /&gt;) as [Date For Join];&lt;BR /&gt;load&lt;BR /&gt;*,&lt;BR /&gt;If&lt;BR /&gt;(&lt;BR /&gt;[Row Count] = 1,&lt;BR /&gt;'Mark Row',&lt;BR /&gt;if&lt;BR /&gt;(&lt;BR /&gt;Partial = 2 and isnull(Complete)&lt;BR /&gt;or&lt;BR /&gt;Complete = 2 and isnull(Partial),&lt;BR /&gt;'Mark Latest Status',&lt;BR /&gt;'Mark Latest Complete'&lt;BR /&gt;)&lt;BR /&gt;) as [Test]&lt;BR /&gt;&lt;BR /&gt;Resident&lt;BR /&gt;tmp_x;&lt;/P&gt;&lt;P&gt;left join ([Planilha1])&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;[Date For Join] as [Date Submitted],&lt;BR /&gt;'Y' as [Correct Record Flag]&lt;BR /&gt;Resident tmp_x_2;&lt;/P&gt;&lt;P&gt;drop table tmp_x_2;&lt;/P&gt;&lt;P&gt;drop tables tmp_x, tmp_count_pass,tmp_count_status,tmp;&lt;/P&gt;&lt;P&gt;NoConcatenate&lt;BR /&gt;Final_Data:&lt;BR /&gt;Load&lt;BR /&gt;[Response ID],&lt;BR /&gt;[Time Started],&lt;BR /&gt;[Date Submitted],&lt;BR /&gt;Status,&lt;BR /&gt;Passcode,&lt;BR /&gt;if (IsNull([Correct Record Flag]),'N',[Correct Record Flag]) as [Correct Record Flag]&lt;BR /&gt;Resident [Planilha1];&lt;/P&gt;&lt;P&gt;drop table [Planilha1];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Basically what I did were some checks to count how many lines are per passcode (field [Row Count]) and after that the count per passcode and status (to get the correct 'Partial' and 'Complete' status).&lt;/P&gt;&lt;P&gt;Last, i classify if it should be getting the last date per status or (when the lines are doubles and same status) or if should get the latest complete date.&lt;/P&gt;&lt;P&gt;Hope it helps,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Felipe.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result looks like yours:&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="sample.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/7025i7CA509CB3FAAAEFC/image-size/large?v=v2&amp;amp;px=999" role="button" title="sample.png" alt="sample.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Thu, 28 Feb 2019 21:10:57 GMT</pubDate>
    <dc:creator>felipedl</dc:creator>
    <dc:date>2019-02-28T21:10:57Z</dc:date>
    <item>
      <title>Identify duplicates and mark them during load script</title>
      <link>https://community.qlik.com/t5/App-Development/Identify-duplicates-and-mark-them-during-load-script/m-p/1548817#M62831</link>
      <description>&lt;P&gt;This is the table I am working with (Correct Record Flag) is not included in the table. I want to add this during load script.&lt;/P&gt;&lt;P&gt;I want to implement logic to mark Correct Record Flag when there are more than one rows with same passcode&lt;/P&gt;&lt;P&gt;1. If there is only one row with the passcode, mark this flag as "Y" (example: zz2832s, tu28cqc)&lt;/P&gt;&lt;P&gt;2. If there are more than one rows then following are the scenarios&lt;/P&gt;&lt;P&gt;- If there are two rows -One with Status 'Partial' and other 'Complete' then mark row with 'Complete' as "Y" and "Partial" as "N" (example: 55fez86)&lt;/P&gt;&lt;P&gt;- If there are two rows both with Same status i.e. both Partial or both Complete, then mark one with lastest based on Date Submitted&amp;nbsp; (Example:&amp;nbsp;9928cos)&lt;/P&gt;&lt;P&gt;- if there are 3 or more rows with combination of status, then pick the latest "Complete" and markt it as "Y" (Example: 1zr5mjc)&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Response ID&lt;/TD&gt;&lt;TD&gt;Time Started&lt;/TD&gt;&lt;TD&gt;Date Submitted&lt;/TD&gt;&lt;TD&gt;Status&lt;/TD&gt;&lt;TD&gt;Passcode&lt;/TD&gt;&lt;TD&gt;Correct Record Flag&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;20/02/2019 11:04&lt;/TD&gt;&lt;TD&gt;20/02/2019 21:34&lt;/TD&gt;&lt;TD&gt;Partial&lt;/TD&gt;&lt;TD&gt;1zr5mjc&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;20/02/2019 11:51&lt;/TD&gt;&lt;TD&gt;20/02/2019 22:22&lt;/TD&gt;&lt;TD&gt;Complete&lt;/TD&gt;&lt;TD&gt;1zr5mjc&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;20/02/2019 21:00&lt;/TD&gt;&lt;TD&gt;21/02/2019 7:33&lt;/TD&gt;&lt;TD&gt;Partial&lt;/TD&gt;&lt;TD&gt;1zr5mjc&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;21/02/2019 0:56&lt;/TD&gt;&lt;TD&gt;21/02/2019 11:27&lt;/TD&gt;&lt;TD&gt;Partial&lt;/TD&gt;&lt;TD&gt;55fez86&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;21/02/2019 0:55&lt;/TD&gt;&lt;TD&gt;21/02/2019 11:34&lt;/TD&gt;&lt;TD&gt;Complete&lt;/TD&gt;&lt;TD&gt;55fez86&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;21/02/2019 3:04&lt;/TD&gt;&lt;TD&gt;21/02/2019 13:35&lt;/TD&gt;&lt;TD&gt;Complete&lt;/TD&gt;&lt;TD&gt;55fez86&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;20/02/2019 11:53&lt;/TD&gt;&lt;TD&gt;20/02/2019 22:24&lt;/TD&gt;&lt;TD&gt;Partial&lt;/TD&gt;&lt;TD&gt;9928cos&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;20/02/2019 11:53&lt;/TD&gt;&lt;TD&gt;20/02/2019 23:24&lt;/TD&gt;&lt;TD&gt;Partial&lt;/TD&gt;&lt;TD&gt;9928cos&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;20/02/2019 11:53&lt;/TD&gt;&lt;TD&gt;21/02/2019 21:24&lt;/TD&gt;&lt;TD&gt;Partial&lt;/TD&gt;&lt;TD&gt;tu28cqc&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;20/02/2019 11:53&lt;/TD&gt;&lt;TD&gt;22/02/2019 23:34&lt;/TD&gt;&lt;TD&gt;Complete&lt;/TD&gt;&lt;TD&gt;zz2832s&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 16 Nov 2024 06:29:51 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Identify-duplicates-and-mark-them-during-load-script/m-p/1548817#M62831</guid>
      <dc:creator>jiwaniakbiar</dc:creator>
      <dc:date>2024-11-16T06:29:51Z</dc:date>
    </item>
    <item>
      <title>Re: Identify duplicates and mark them during load script</title>
      <link>https://community.qlik.com/t5/App-Development/Identify-duplicates-and-mark-them-during-load-script/m-p/1550774#M62832</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's been a while since i've posted something here, so i'm a little rusty.&lt;/P&gt;&lt;P&gt;Attached the sample app, spreadsheet used and code that is used to generate your outcome&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;tmp:&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Status,&lt;BR /&gt;[Date Submitted]&lt;BR /&gt;Resident [Planilha1];&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;tmp_count_pass:&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;count(Passcode) as Count&lt;BR /&gt;Resident tmp&lt;BR /&gt;group by&lt;BR /&gt;Passcode;&lt;/P&gt;&lt;P&gt;tmp_count_status:&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;Status,&lt;BR /&gt;count(Status) as Count_Status&lt;BR /&gt;Resident tmp&lt;BR /&gt;group by&lt;BR /&gt;Passcode,&lt;BR /&gt;Status;&lt;BR /&gt;&lt;BR /&gt;tmp_x:&lt;BR /&gt;load&lt;BR /&gt;Distinct&lt;BR /&gt;Passcode&lt;BR /&gt;Resident&lt;BR /&gt;tmp;&lt;BR /&gt;&lt;BR /&gt;left join (tmp_x)&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Count_Status as 'Partial'&lt;BR /&gt;Resident&lt;BR /&gt;tmp_count_status&lt;BR /&gt;where&lt;BR /&gt;Status = 'Partial';&lt;/P&gt;&lt;P&gt;left join (tmp_x)&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Count_Status as 'Complete'&lt;BR /&gt;Resident&lt;BR /&gt;tmp_count_status&lt;BR /&gt;where&lt;BR /&gt;Status = 'Complete';&lt;/P&gt;&lt;P&gt;left join (tmp_x)&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;Count as [Row Count]&lt;BR /&gt;Resident tmp_count_pass;&lt;/P&gt;&lt;P&gt;left join (tmp_x)&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;max([Date Submitted]) as [Max Status]&lt;BR /&gt;Resident&lt;BR /&gt;[Planilha1]&lt;BR /&gt;group by&lt;BR /&gt;Passcode;&lt;BR /&gt;&lt;BR /&gt;left join (tmp_x)&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;max([Date Submitted]) as [Max Complete]&lt;BR /&gt;Resident&lt;BR /&gt;[Planilha1]&lt;BR /&gt;where&lt;BR /&gt;Status = 'Complete'&lt;BR /&gt;group by&lt;BR /&gt;Passcode;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;tmp_x_2:&lt;BR /&gt;Load&lt;BR /&gt;Passcode,&lt;BR /&gt;If&lt;BR /&gt;(&lt;BR /&gt;[Row Count] = 1,&lt;BR /&gt;alt([Max Status],[Max Complete]),&lt;BR /&gt;if&lt;BR /&gt;(&lt;BR /&gt;Test = 'Mark Latest Status',&lt;BR /&gt;[Max Status],&lt;BR /&gt;if&lt;BR /&gt;(&lt;BR /&gt;Test = 'Mark Latest Complete',&lt;BR /&gt;[Max Complete]&lt;BR /&gt;)&lt;BR /&gt;)&lt;BR /&gt;) as [Date For Join];&lt;BR /&gt;load&lt;BR /&gt;*,&lt;BR /&gt;If&lt;BR /&gt;(&lt;BR /&gt;[Row Count] = 1,&lt;BR /&gt;'Mark Row',&lt;BR /&gt;if&lt;BR /&gt;(&lt;BR /&gt;Partial = 2 and isnull(Complete)&lt;BR /&gt;or&lt;BR /&gt;Complete = 2 and isnull(Partial),&lt;BR /&gt;'Mark Latest Status',&lt;BR /&gt;'Mark Latest Complete'&lt;BR /&gt;)&lt;BR /&gt;) as [Test]&lt;BR /&gt;&lt;BR /&gt;Resident&lt;BR /&gt;tmp_x;&lt;/P&gt;&lt;P&gt;left join ([Planilha1])&lt;BR /&gt;load&lt;BR /&gt;Passcode,&lt;BR /&gt;[Date For Join] as [Date Submitted],&lt;BR /&gt;'Y' as [Correct Record Flag]&lt;BR /&gt;Resident tmp_x_2;&lt;/P&gt;&lt;P&gt;drop table tmp_x_2;&lt;/P&gt;&lt;P&gt;drop tables tmp_x, tmp_count_pass,tmp_count_status,tmp;&lt;/P&gt;&lt;P&gt;NoConcatenate&lt;BR /&gt;Final_Data:&lt;BR /&gt;Load&lt;BR /&gt;[Response ID],&lt;BR /&gt;[Time Started],&lt;BR /&gt;[Date Submitted],&lt;BR /&gt;Status,&lt;BR /&gt;Passcode,&lt;BR /&gt;if (IsNull([Correct Record Flag]),'N',[Correct Record Flag]) as [Correct Record Flag]&lt;BR /&gt;Resident [Planilha1];&lt;/P&gt;&lt;P&gt;drop table [Planilha1];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Basically what I did were some checks to count how many lines are per passcode (field [Row Count]) and after that the count per passcode and status (to get the correct 'Partial' and 'Complete' status).&lt;/P&gt;&lt;P&gt;Last, i classify if it should be getting the last date per status or (when the lines are doubles and same status) or if should get the latest complete date.&lt;/P&gt;&lt;P&gt;Hope it helps,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Felipe.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Result looks like yours:&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="sample.png" style="width: 999px;"&gt;&lt;img src="https://community.qlik.com/t5/image/serverpage/image-id/7025i7CA509CB3FAAAEFC/image-size/large?v=v2&amp;amp;px=999" role="button" title="sample.png" alt="sample.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Feb 2019 21:10:57 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Identify-duplicates-and-mark-them-during-load-script/m-p/1550774#M62832</guid>
      <dc:creator>felipedl</dc:creator>
      <dc:date>2019-02-28T21:10:57Z</dc:date>
    </item>
  </channel>
</rss>

