<?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: Best key/join approach for this scenario? in QlikView</title>
    <link>https://community.qlik.com/t5/QlikView/Best-key-join-approach-for-this-scenario/m-p/720110#M674556</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;EventSignups and EventAttendance seem to be two facets of the same set of fact data, which when you break it down are both "Attendee actions".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Concatenate all rows from Signups and Attendance into a single table called [Event_Facts] and mark every row with either a value of 'Signup' or 'Attend' in a new field called [AttendeeAction].&amp;nbsp; Then drop the tables [EventSignups] and [EventAttendance].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then going forward, there is a clean association between EventInfo and Event_Facts.&amp;nbsp; Picking a single EventID will associate with all the UserIDs of any type of action recorded for that event, and adding additional [AttendeeAction] values like 'Payment' or 'Inquired' or 'Cancelled' can also slot into this system without complicating the data model with new tables.&amp;nbsp; Going forward you can add any number of additional facts to record about each EventID in a system like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to isolate the attendance information from the signup information, use the set-analysis segments [AttendeeAction]={'Signup'} vs. [AttendeeAction]={'Attend'} to separate any one set of fact information from the rest when crafting expressions.&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="63785" alt="20140805_Event_Tracking_data_model.png" class="jive-image" src="https://community.qlik.com/legacyfs/online/63785_20140805_Event_Tracking_data_model.png" style="width: 620px; height: 628px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 06 Aug 2014 00:03:53 GMT</pubDate>
    <dc:creator>evan_kurowski</dc:creator>
    <dc:date>2014-08-06T00:03:53Z</dc:date>
    <item>
      <title>Best key/join approach for this scenario?</title>
      <link>https://community.qlik.com/t5/QlikView/Best-key-join-approach-for-this-scenario/m-p/720109#M674555</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, What is the best approach for below, just 'outer join load' maybe, or some other approach?&amp;nbsp; I have tables like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EventInfo:&lt;/P&gt;&lt;P&gt;Load EventId,&lt;/P&gt;&lt;P&gt;EventDate,&lt;/P&gt;&lt;P&gt;EventLocation&lt;/P&gt;&lt;P&gt;From EventInfo.qvd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EventSignups:&lt;/P&gt;&lt;P&gt;Load UserId,&lt;/P&gt;&lt;P&gt;EventId,&lt;/P&gt;&lt;P&gt;SlotId,&lt;/P&gt;&lt;P&gt;SlotTime&lt;/P&gt;&lt;P&gt;From EventSignups.qvd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EventAttendance:&lt;/P&gt;&lt;P&gt;Load UserId,&lt;/P&gt;&lt;P&gt;EventId,&lt;/P&gt;&lt;P&gt;SlotId,&lt;/P&gt;&lt;P&gt;IsEventAttended,&lt;/P&gt;&lt;P&gt;IsActivityAAttended,&lt;/P&gt;&lt;P&gt;IsActivityBAttended&lt;/P&gt;&lt;P&gt;From EventAttendance.qvd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now, the first two tables look like they should take care of themselves since they have only one key between them (EventId).&amp;nbsp; Trick to the next two is that a person can signup for an event, but maybe change their mind for whatever reason and go as a walk-in to a different event id.&amp;nbsp; So we might see they signed up for event 123, but have no attendance information there, while they have attendance info for event 456 and no signup data for that.&amp;nbsp; Signup but no attend would be counted as 'no shows' and attend without signup would be counted as 'walk ins', but I think I can take care of those with a couple of if this and that statements on a resident load after the second and third table are joined...Or something.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any clean unambiguous approach for this data?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Aug 2014 23:09:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Best-key-join-approach-for-this-scenario/m-p/720109#M674555</guid>
      <dc:creator>stevelord</dc:creator>
      <dc:date>2014-08-05T23:09:06Z</dc:date>
    </item>
    <item>
      <title>Re: Best key/join approach for this scenario?</title>
      <link>https://community.qlik.com/t5/QlikView/Best-key-join-approach-for-this-scenario/m-p/720110#M674556</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;EventSignups and EventAttendance seem to be two facets of the same set of fact data, which when you break it down are both "Attendee actions".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Concatenate all rows from Signups and Attendance into a single table called [Event_Facts] and mark every row with either a value of 'Signup' or 'Attend' in a new field called [AttendeeAction].&amp;nbsp; Then drop the tables [EventSignups] and [EventAttendance].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then going forward, there is a clean association between EventInfo and Event_Facts.&amp;nbsp; Picking a single EventID will associate with all the UserIDs of any type of action recorded for that event, and adding additional [AttendeeAction] values like 'Payment' or 'Inquired' or 'Cancelled' can also slot into this system without complicating the data model with new tables.&amp;nbsp; Going forward you can add any number of additional facts to record about each EventID in a system like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to isolate the attendance information from the signup information, use the set-analysis segments [AttendeeAction]={'Signup'} vs. [AttendeeAction]={'Attend'} to separate any one set of fact information from the rest when crafting expressions.&lt;/P&gt;&lt;P&gt;&lt;IMG __jive_id="63785" alt="20140805_Event_Tracking_data_model.png" class="jive-image" src="https://community.qlik.com/legacyfs/online/63785_20140805_Event_Tracking_data_model.png" style="width: 620px; height: 628px;" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Aug 2014 00:03:53 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Best-key-join-approach-for-this-scenario/m-p/720110#M674556</guid>
      <dc:creator>evan_kurowski</dc:creator>
      <dc:date>2014-08-06T00:03:53Z</dc:date>
    </item>
    <item>
      <title>Re: Best key/join approach for this scenario?</title>
      <link>https://community.qlik.com/t5/QlikView/Best-key-join-approach-for-this-scenario/m-p/720111#M674557</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;This is a well thought out response and I agree with the distinction between signup and attendance.&amp;nbsp; The new field to globally clarify that distinction between records, and merging the data to one table with that field in mind, is a nice approach.&amp;nbsp; **Specifically, your approach neutralizes any concerns about synthetic keys or loops or other wonky stuff that might form if I combine this data by some other approach.***&amp;nbsp; I will leave it to myself (or subsequent qlikcommunity posts!) to hammer out the specific equations for subsequent analysis if I get stuck later.&amp;nbsp; (There's a shopping list of requested information I need to develop equations to produce the answers to.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Two branches on the same tree, some analysis to see which leaves the two branches do or don't have in common... &lt;IMG src="https://community.qlik.com/legacyfs/online/emoticons/happy.png" /&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Aug 2014 17:26:01 GMT</pubDate>
      <guid>https://community.qlik.com/t5/QlikView/Best-key-join-approach-for-this-scenario/m-p/720111#M674557</guid>
      <dc:creator>stevelord</dc:creator>
      <dc:date>2014-08-07T17:26:01Z</dc:date>
    </item>
  </channel>
</rss>

