LOCUS lets you look at parameters from more than one parameter
table. When more than one parameter table is used, you must either
supply a key or keys which are used to join the
tables or you can specify the join explicitly . For
example, to use two parameter tables TESCAL
and TOK
with
records joined on shot number, do:
<0=SD;> Select database and tables <DB>: PT
<1=GT;> Tables <>: TESCAL TOK ;
<0=SD;> Select database and tables <DB>: RETURN
\* Options are:
1) DB Database MURPHY
2) PT Parameter Tables TESCAL TOK
3) PA Parameter Aliases A B
4) PK Parameter Keys
<0=SD;> Select database and tables <PT>: PK
<1;> Keys for TESCAL? < >: SHOT ;
<1;> Keys for TOK? < >: SHOT ;
The tables will be joined on SHOT
such that A.SHOT=B.SHOT
when a retrieval requires parameters from more than one table. This
may have the effect of a constraint since there may be shots in one
table, but not the other. The join on the specified parameter
keys is only applied if the retrieve requires columns from both
tables.
Alternatively the join can be specified explicitly.
<0=SD;> Select database and tables <PK>: JO
<1> Use the join instead of parameter keys? <N>: Y
<2;> Join? < >: A.SHOT=B.SHOT
By specifying the join explicitly instead of using the PK
option, you force the join to be applied for all retrieves. You would
also specify the join explicitly if you have different keys in more
than two tables. For example, if you have three tables where the first
is a function of shot, the second of shot and radius, and the third
table just contains a mapping of radius to frequency, you would
specify the join as:
<2;> Join? < >: (A.SHOT=B.SHOT)and(B.RADIUS=C.RADIUS)
where a, b, and c are aliases for the three tables.