<?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 Qlik Conditional logic in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2535672#M108547</link>
    <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;Can you please help me understand how to resolve below&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="349"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="86"&gt;ID&lt;/TD&gt;
&lt;TD width="75"&gt;Name&lt;/TD&gt;
&lt;TD width="96"&gt;Date&lt;/TD&gt;
&lt;TD width="92"&gt;Product&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;234&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/1/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;345&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/2/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;456&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/4/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/6/2024&lt;/TD&gt;
&lt;TD&gt;Speaker&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have to create two columns in above table with two conditions&lt;/P&gt;
&lt;P&gt;Condition 1 - If John buying TV after one year from initial purchase and the next purchase after one year from last purchase then its New purchase&amp;nbsp; but if he changes Product like Speaker in the same Year then its New ,if not Existing - Always initial purchase is New&lt;/P&gt;
&lt;P&gt;Condition 2 - If John buying TV or Speaker after one year from initial purchase and the next purchase after one year from last purchase then its New purchase if not Existing - Always initial purchase is New&lt;/P&gt;
&lt;P&gt;Results Like below&lt;/P&gt;
&lt;TABLE width="530"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="86"&gt;ID&lt;/TD&gt;
&lt;TD width="75"&gt;Name&lt;/TD&gt;
&lt;TD width="96"&gt;Date&lt;/TD&gt;
&lt;TD width="92"&gt;Product&lt;/TD&gt;
&lt;TD width="117"&gt;Condition 1&lt;/TD&gt;
&lt;TD width="64"&gt;Condition 2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;234&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/1/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;345&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/2/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;Existing&lt;/TD&gt;
&lt;TD&gt;Existing&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;456&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/4/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/6/2024&lt;/TD&gt;
&lt;TD&gt;Speaker&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;Existing&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in Advance!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sat, 08 Nov 2025 01:59:16 GMT</pubDate>
    <dc:creator>Shivam22</dc:creator>
    <dc:date>2025-11-08T01:59:16Z</dc:date>
    <item>
      <title>Qlik Conditional logic</title>
      <link>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2535672#M108547</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;Can you please help me understand how to resolve below&amp;nbsp;&lt;/P&gt;
&lt;TABLE width="349"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="86"&gt;ID&lt;/TD&gt;
&lt;TD width="75"&gt;Name&lt;/TD&gt;
&lt;TD width="96"&gt;Date&lt;/TD&gt;
&lt;TD width="92"&gt;Product&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;234&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/1/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;345&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/2/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;456&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/4/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/6/2024&lt;/TD&gt;
&lt;TD&gt;Speaker&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have to create two columns in above table with two conditions&lt;/P&gt;
&lt;P&gt;Condition 1 - If John buying TV after one year from initial purchase and the next purchase after one year from last purchase then its New purchase&amp;nbsp; but if he changes Product like Speaker in the same Year then its New ,if not Existing - Always initial purchase is New&lt;/P&gt;
&lt;P&gt;Condition 2 - If John buying TV or Speaker after one year from initial purchase and the next purchase after one year from last purchase then its New purchase if not Existing - Always initial purchase is New&lt;/P&gt;
&lt;P&gt;Results Like below&lt;/P&gt;
&lt;TABLE width="530"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="86"&gt;ID&lt;/TD&gt;
&lt;TD width="75"&gt;Name&lt;/TD&gt;
&lt;TD width="96"&gt;Date&lt;/TD&gt;
&lt;TD width="92"&gt;Product&lt;/TD&gt;
&lt;TD width="117"&gt;Condition 1&lt;/TD&gt;
&lt;TD width="64"&gt;Condition 2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;123&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;1/1/2023&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;234&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/1/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;345&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;2/2/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;Existing&lt;/TD&gt;
&lt;TD&gt;Existing&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;456&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/4/2024&lt;/TD&gt;
&lt;TD&gt;TV&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;567&lt;/TD&gt;
&lt;TD&gt;John&lt;/TD&gt;
&lt;TD&gt;3/6/2024&lt;/TD&gt;
&lt;TD&gt;Speaker&lt;/TD&gt;
&lt;TD&gt;New&lt;/TD&gt;
&lt;TD&gt;Existing&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks in Advance!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Nov 2025 01:59:16 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2535672#M108547</guid>
      <dc:creator>Shivam22</dc:creator>
      <dc:date>2025-11-08T01:59:16Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Conditional logic</title>
      <link>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2535673#M108548</link>
      <description>&lt;P&gt;Hi look into this,&lt;/P&gt;&lt;LI-CODE lang="css"&gt;LOAD
    ID,
    Name,
    Date(Date#(Date, 'M/D/YYYY')) as Date,
    Product,
    If((Date - Previous(Date)) &amp;gt;= 365, 'New', 'Existing') as New/Existing, 

    // Condition 1
    If(RowNo()=1, 'New',
        If(Product &amp;lt;&amp;gt; Previous(Product) and Year(Date)=Year(Previous(Date)), 'New',
        If(Year(Date)-Year(Previous(Date)) &amp;gt;= 1, 'New', 'Existing'))
    ) as [Condition 1],

    // Condition 2
    If(RowNo()=1, 'New',
        If(Year(Date)-Year(Previous(Date)) &amp;gt;= 1, 'New', 'Existing')
    ) as [Condition 2]

Resident YourTable
Order By Name, Date;&lt;/LI-CODE&gt;</description>
      <pubDate>Sat, 08 Nov 2025 03:46:56 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2535673#M108548</guid>
      <dc:creator>HirisH_V7</dc:creator>
      <dc:date>2025-11-08T03:46:56Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Conditional logic</title>
      <link>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2537781#M108866</link>
      <description>&lt;P&gt;Did you find a solution to your question? Mark the solution as accepted and if you found it useful. else Continue the thread.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Dec 2025 08:19:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2537781#M108866</guid>
      <dc:creator>HirisH_V7</dc:creator>
      <dc:date>2025-12-02T08:19:40Z</dc:date>
    </item>
    <item>
      <title>Re: Qlik Conditional logic</title>
      <link>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2537818#M108872</link>
      <description>&lt;P&gt;Check out the script&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;LI-CODE lang="markup"&gt;// 1. Load the Data and Ensure Correct Date Formatting
TempData:
LOAD 
    ID,
    Name,
    Date(Date#(Date, 'M/D/YYYY')) as PurchaseDate, // Convert to Qlik Date Value
    Product
INLINE [
ID, Name, Date, Product
123, John, 1/1/2023, TV
234, John, 2/1/2024, TV
345, John, 2/2/2024, TV
456, John, 3/4/2024, TV
567, John, 3/6/2024, Speaker
];

// Sort the data by Name and then PurchaseDate
SortedData:
NoConcatenate
LOAD 
    ID,
    Name,
    PurchaseDate,
    Product
RESIDENT TempData
ORDER BY Name, PurchaseDate ASC; // **CRUCIAL STEP** for sequential logic

DROP TABLE TempData;

---

// 2. Apply Sequential Logic using Peek()

FinalData:
LOAD 
    ID,
    Name,
    Date(PurchaseDate) as Date, // Keep Date for display
    Product,
    
    // Get the previous Name, Date, and Product for comparison
    Peek('Name', -1, 'SortedData') as PrevName,
    Peek('PurchaseDate', -1, 'SortedData') as PrevDate,
    Peek('Product', -1, 'SortedData') as PrevProduct,
    
    // Check if this is the first purchase (GroupName check)
    // NOTE: Peek('Name', -1) will be null or different if this is the first record for a Name
    If(IsNull(Peek('Name', -1, 'SortedData')) OR Name &amp;lt;&amp;gt; Peek('Name', -1, 'SortedData'), 'New', 
    
        // Calculate the difference: 1 year must have passed (&amp;gt;= 365 days)
        If( PurchaseDate &amp;gt;= AddYears(Peek('PurchaseDate', -1, 'SortedData'), 1), 'New', 
        
            // Condition 1: Check for product change in the same year/less than a year
            // The purchase must be 'New' if the product changed AND the 1-year gap was NOT met.
            If( Product &amp;lt;&amp;gt; Peek('Product', -1, 'SortedData'), 'New', 'Existing')
        )
    ) as [Condition 1],

    // Condition 2: Simpler logic - only checks for the 1-year gap (Always 'New' initially)
    If(IsNull(Peek('Name', -1, 'SortedData')) OR Name &amp;lt;&amp;gt; Peek('Name', -1, 'SortedData'), 'New', 
        If( PurchaseDate &amp;gt;= AddYears(Peek('PurchaseDate', -1, 'SortedData'), 1), 'New', 'Existing' )
    ) as [Condition 2]

RESIDENT SortedData
ORDER BY Name, PurchaseDate ASC; // Maintain the sort order

DROP TABLE SortedData;&lt;/LI-CODE&gt;
&lt;P&gt;&lt;a href="https://community.qlik.com/t5/user/viewprofilepage/user-id/422"&gt;@HirisH_V7&lt;/a&gt;&amp;nbsp;,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Some of the issues that has been resolved includes:&lt;BR /&gt;&lt;BR /&gt;1.&amp;nbsp;The If(IsNull(Peek('Name', -1, 'SortedData')) OR Name &amp;lt;&amp;gt; Peek('Name', -1, 'SortedData'), 'New', ...) block ensures that the first purchase for any customer is correctly labeled "New," preventing errors if you add more names later.&lt;/P&gt;
&lt;P&gt;2.&amp;nbsp;Using PurchaseDate &amp;gt;= AddYears(PrevDate, 1) correctly enforces the requirement that the purchase date must be on or after the date one year later, accurately representing "after one year from last purchase."&lt;/P&gt;
&lt;P&gt;3.&amp;nbsp;The product change check is nested correctly. It's only evaluated if the 1-year gap was NOT met, perfectly matching the rule: "but if he changes Product like Speaker in the same Year then its New, if not Existing."&lt;/P&gt;
&lt;P&gt;Hope this answer suits your question.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Dec 2025 14:09:09 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Qlik-Conditional-logic/m-p/2537818#M108872</guid>
      <dc:creator>mikekelvin</dc:creator>
      <dc:date>2025-12-02T14:09:09Z</dc:date>
    </item>
  </channel>
</rss>

