<font size=2 face="sans-serif">Hey Richard!</font>
<br><font size=2 face="sans-serif">You are probably one of the last people
who remember my old MattO (Oh, not zero) tag. :-)</font>
<br>
<br><font size=2 face="sans-serif">I don't know if there are still PH conventions,
but I doubt it. &nbsp;Oddly enough I gave a more complete version of this
many, many years ago at a Cognos convention and it was my biggest ego boost
moment. &nbsp;The room not only filled completely, but there were people
sitting on the floor at my feet so they could see it! &nbsp;</font>
<br>
<br><font size=2 face="sans-serif">I wish I still had that original paper,
as it seems to be a pretty confusing topic still. &nbsp;(Anyone have one
in their archives?)</font>
<br>
<br><font size=2 face="sans-serif">Also, If you have a QTP with all those
files, you might also be interested in another paper I wrote (years ago)
called the &quot;Care and Feeding of QTP&quot;. I have a PDF of it still
I can send you if you'd like (I can't post it to the list, if I recall).
&nbsp;However, that has more to do with output timing than hierarchical
vs. parallel linkage.</font>
<br>
<br><font size=2 face="sans-serif">My main advice for debugging Access
statements has always been, take the Access and put it in Quiz and write
a VERY basic Report statement that dumps something from every files. &nbsp;Then
go look at the &nbsp;files individually and make sure they match what you
see. &nbsp;If that works, they your problem is elsewhere. &nbsp;And honestly,
with QTP, it is usually the &quot;elsewhere&quot; that is the problem.
:-)</font>
<br>
<br><font size=2 face="sans-serif">This has been fun!</font>
<br><font size=2 face="sans-serif">Cheers,</font>
<br><font size=2 face="sans-serif">Matt</font>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">&quot;Richard Witkopp&quot;
&lt;RWitkopp@phxa.com&gt;</font>
<br><font size=1 color=#5f5f5f face="sans-serif">To: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">&quot;PowerHouse listserver&quot;
&lt;powerh-l@lists.sowder.com&gt;</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date: &nbsp; &nbsp; &nbsp;
&nbsp;</font><font size=1 face="sans-serif">03/05/2015 06:29 PM</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=1 face="sans-serif">RE: Hierarchical
vs. Parallel linkage</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Sent by: &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=1 face="sans-serif">powerh-l-bounces+mohmes=us.ibm.com@lists.sowder.com</font>
<br>
<hr noshade>
<br>
<br>
<br><font size=2 color=#004080 face="Calibri">Nice, not-a-zero!</font>
<br><font size=2 color=#004080 face="Calibri">&nbsp;</font>
<br><font size=2 color=#004080 face="Calibri">Are there still Powerhoose
conventions? This would make a good presentation.</font>
<br><font size=2 color=#004080 face="Calibri">&nbsp;</font>
<br><font size=2 color=#004080 face="Calibri">I need to re-read this thing
about 4 times. I’ve got a qtp with about 5 parallel legs and 3 hierarchical
files down each leg and it doesn’t do what it looks like it should do.</font>
<br><font size=2 color=#004080 face="Calibri">&nbsp;</font>
<br><font size=2 face="Tahoma"><b>From:</b> powerh-l-bounces+rwitkopp=phxa.com@lists.sowder.com
[</font><a href="mailto:powerh-l-bounces+rwitkopp=phxa.com@lists.sowder.com"><font size=2 face="Tahoma">mailto:powerh-l-bounces+rwitkopp=phxa.com@lists.sowder.com</font></a><font size=2 face="Tahoma">]
<b>On Behalf Of </b>Matt Ohmes<b><br>
Sent:</b> Thursday, March 05, 2015 3:57 PM<b><br>
To:</b> PowerHouse listserver<b><br>
Subject:</b> Hierarchical vs. Parallel linkage</font>
<br><font size=3 face="Times New Roman">&nbsp;</font>
<br><font size=2 face="Courier New">Hi all,</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
I promised I would write up something on the differences between Hierarchical
and Parallel linkage in Quiz (and QTP), so here we go. (And for those of
you who know all this already, please forgive my trip down memory lane.)</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
Oh, and I'm assuming no bugs in the product regarding syntax. :-)</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
Differences between Hierarchical and Parallel linkage in Quiz (and QTP)</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
In all examples below, we will use 3 files. Assume all are indexed files,
keyed on Emp_No</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
File Employees: 5 records;</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
Emp_No &nbsp;Emp_Name</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Mary</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
3 &nbsp; &nbsp; &nbsp; Pat</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
4 &nbsp; &nbsp; &nbsp; Kim</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
5 &nbsp; &nbsp; &nbsp; Sean</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
File Paychecks: 5 records</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
Emp_No &nbsp;Pay_Date &nbsp; &nbsp;Amt</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; 2015-01-01 &nbsp;100 &nbsp; &nbsp; (Bob)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;200 &nbsp; &nbsp; (Bob)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; 2015-01-01 &nbsp;300 &nbsp; &nbsp; (Mary)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;400 &nbsp; &nbsp; (Mary)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
3 &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;600 &nbsp; &nbsp; (Pat)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
Note: 4 Kim and 5 Sean just started and have not been paid yet)</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
File Dependents: 4 records;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
Emp_No &nbsp;Dep_Name</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob Jr &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;(Bob's 1st dependent)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bobbie &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp;(Bob's 2nd dependent)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Marie &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; (Mary's dependent)</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
5 &nbsp; &nbsp; &nbsp; Shawn &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; (Sean's dependent)</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
Note: 3 Pat and 4 Kim do not have any dependents</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
This will be my Report statement for ALL examples:</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
Report &amp;</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Emp_No of Employees &amp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Emp_Name of Employees &amp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Pay_Date of Paychecks &amp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Amt of Paychecks &amp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Dep_Name of Dependents</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;<br>
First Hierarchical linkage:</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
Access Employees &amp;</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Link Emp_No of Employees to Emp_No of Paychecks &amp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Link Emp_No of Employees to Emp_No of Dependents</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
Emp_No &nbsp;Emp_Name &nbsp; &nbsp;Pay_Date &nbsp; &nbsp;Amt &nbsp; &nbsp;
Dep_Name</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-01 &nbsp;100
&nbsp; &nbsp; Bob Jr</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-01 &nbsp;100
&nbsp; &nbsp; Bobbie</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;200
&nbsp; &nbsp; Bob Jr</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;200
&nbsp; &nbsp; Bobbie</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Mary &nbsp; &nbsp; &nbsp; &nbsp;2015-01-01 &nbsp;300
&nbsp; &nbsp; Marie</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Mary &nbsp; &nbsp; &nbsp; &nbsp;2015-01-15 &nbsp;400
&nbsp; &nbsp; Marie</font><font size=3 face="Times New Roman"> <br>
</font><font size=2 face="Courier New"><br>
Obvious problems. Pat, Kim, and Sean are not showing up at all because
no files are optional. I'm assuming the use of Optional in hierarchical
linkage is well understood so I won't go into that discussion here. This
post is about parallel linkage. :-)</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
A bigger problem with the report is that paycheck and dependent records
are being duplicated. Hierarchical linkage is simply wrong for this data;
the results make no sense. <br>
 </font><font size=3 face="Times New Roman">&nbsp;</font><font size=2 face="Courier New"><br>
Using hierarchical linkage for this data is essentially saying, for each
paycheck an employee has received, read down the list of all their dependents.
That makes no sense. Just as it would make no sense to say, for each dependent
an employee has, show me every time they have been paid. &nbsp;The number
of paychecks I receive is based on how long I have worked for my employeer,
not how many dependents I have. &nbsp;Similarly, the number of dependents
I have is not based on how long I have worked for my employer. &nbsp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 </font><font size=3 face="Times New Roman">&nbsp;</font><font size=2 face="Courier New"><br>
Paychecks and Dependents are both, obviously related to Employees, but
they are NOT RELATED TO ONE ANOTHER. &nbsp;</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
Instead of one of these files &quot;driving&quot; the other, they should
be read in parallel; i.e. at the same time. &nbsp;THIS is why we have parallel
linkage. &nbsp;Parallel linkage is saying, for each employee, show me each
of their paychecks AND each of their dependents.</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
Let's try parallel linkage in the Access statement and what that does to
our report results.</font><font size=3 face="Times New Roman"> <br>
</font><font size=2 face="Courier New"><br>
Access Employees &amp;</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Link Emp_No of Employees to Emp_No of Paychecks &amp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;AND Emp_No of Employees to Emp_No of Dependents <br>
 &nbsp; &nbsp;<br>
Emp_No &nbsp;Emp_Name &nbsp; &nbsp;Pay_Date &nbsp; &nbsp;Amt &nbsp; &nbsp;
Dep_Name</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-01 &nbsp;100
&nbsp; &nbsp; Bob Jr</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;200
&nbsp; &nbsp; Bobbie</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Mary &nbsp; &nbsp; &nbsp; &nbsp;2015-01-01 &nbsp;300
&nbsp; &nbsp; Marie</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Mary &nbsp; &nbsp; &nbsp; &nbsp;2015-01-15 &nbsp;400</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
3 &nbsp; &nbsp; &nbsp; Pat &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;600</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
5 &nbsp; &nbsp; &nbsp; Sean &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Shawn</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
This makes more sense for this data. &nbsp;Each paycheck is reported once
and each dependent is reported once. &nbsp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
Notice, as long as there is at least one record FROM ANY of the parallel
files you get a record complex returned. Parallel files are, more or less,
&quot;semi-optional&quot;.</font><font size=3 face="Times New Roman"> <br>
</font><font size=2 face="Courier New"><br>
However, also notice employee 4 Kim was not reported. &nbsp;This was because
Kim did not have any paychecks (yet) or dependents. If you want to see
Kim on the report as well, make ANY of the parallel files optional; it
doesn't make any difference which one because of the &quot;semi-optional&quot;
nature of parallel files.</font><font size=3 face="Times New Roman"> <br>
</font><font size=2 face="Courier New"><br>
Access Employees &amp;</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;Link Emp_No of Employees to Emp_No of Paychecks &amp;</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;AND Emp_No of Employees to Emp_No of Dependents Optional</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;<br>
Emp_No &nbsp;Emp_Name &nbsp; &nbsp;Pay_Date &nbsp; &nbsp;Amt &nbsp; &nbsp;
Dep_Name</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-01 &nbsp;100
&nbsp; &nbsp; Bob Jr</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
1 &nbsp; &nbsp; &nbsp; Bob &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;200
&nbsp; &nbsp; Bobbie</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Mary &nbsp; &nbsp; &nbsp; &nbsp;2015-01-01 &nbsp;300
&nbsp; &nbsp; Marie</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
2 &nbsp; &nbsp; &nbsp; Mary &nbsp; &nbsp; &nbsp; &nbsp;2015-01-15 &nbsp;400</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
3 &nbsp; &nbsp; &nbsp; Pat &nbsp; &nbsp; &nbsp; &nbsp; 2015-01-15 &nbsp;600</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
4 &nbsp; &nbsp; &nbsp; Kim</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
5 &nbsp; &nbsp; &nbsp; Sean &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Shawn</font><font size=3 face="Times New Roman">
<br>
</font><font size=2 face="Courier New"><br>
To be honest, parallel linkage is not that common. It is fair to ask, &quot;If
two files aren't related to one another, why are you writing a report with
both of them on it?&quot; &nbsp;But it does have its uses from time to
time.</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
 </font><font size=3 face="Times New Roman">&nbsp;</font><font size=2 face="Courier New"><br>
I hope that explanation helps. (It was fun writing about good old Quiz
again after all these years.)</font><font size=3 face="Times New Roman">
</font><font size=2 face="Courier New"><br>
Cheers,</font><font size=3 face="Times New Roman"> </font><font size=2 face="Courier New"><br>
Matt</font>
<p><font size=3>securemail.phxa.com made the following annotations<br>
---------------------------------------------------------------------<br>
<br>
NOTICE: The information contained in this e-mail and <br>
any attachments is confidential and may be privileged <br>
or otherwise protected from disclosure.This e-mail is <br>
intended solely for the use of the named addressee. <br>
Any other use, printing, copying, disclosure or <br>
dissemination may be subject to legal restriction. If <br>
you are not the intended recipient, please contact the <br>
sender and delete all copies including any attachments.<br>
<br>
---------------------------------------------------------------------</font><tt><font size=2>--<br>
= = = = = = = = = = = = = = = = = = = = = = = = = = = =<br>
Mailing list: powerh-l@lists.sowder.com<br>
Subscribe: 'subscribe' in message body to powerh-l-request@lists.sowder.com<br>
Unsubscribe: 'unsubscribe &amp;lt;password&amp;gt;' in message body to
powerh-l-request@lists.sowder.com<br>
</font></tt><a href="http://lists.sowder.com/mailman/listinfo/powerh-l"><tt><font size=2>http://lists.sowder.com/mailman/listinfo/powerh-l</font></tt></a><tt><font size=2><br>
This list is closed, thus to post to the list you must be a subscriber.<br>
Add 'site:lists.sowder.com powerh-l' to your search terms to search the
list archive at Google.</font></tt>
<p>