Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

UNION# returns a string containing the union of two (or more) TeLiTab sets

Syntax

UNION#(Telitab_1$, UnfoldPar_1$, Telitab_2$, UnfoldPar_2$, Mode%)

or

UNION#(Mode%, Telitab_1$, Telitab_2$, ...)

Arguments

  • Telitab_1$ is 1$ is a string expression containing/returning the first Telitab set.
  • UnfoldPar_1$ is 1$ is a name of parameter for which to unfold the first Telitab set.
  • Telitab_2$ is 2$ is a string expression containing/returning the second Telitab set.
  • UnfoldPar_2$ is 2$ is a name of parameter for which to unfold the second Telitab set.
  • Mode% determines Mode% determines the way to union:
    • Mode% Mode% = 0, Sparse union, i.e. tables are simply attached and not available values are indicated by -999999 (the standard code for PENDING).
    • Mode% Mode% = 1, Union combining parameters of cases with one or more corresponding parameter(s) + value(s).

...

  1. As shown, two syntax types are available. With the second syntax type you can union several (even more than two) TeLiTab datasets at once.

Examples

Sparse union 

Spare union of Telitab_1$ and Telitab_2$:

Telitab_1$ contains the dataset:


"MODELS" 


-4 "1" "2" "3" "4" 
"MODMAT$" "wood" "foam" "wood" "plywood" 
"LPP" 112.30 133.80 98.60 145.00 
"B" 17.80 21.50 16.42 22.40 
"T" 7.65 9.20 6.70 9.40 

"PROJECTS" 


"CLIENT$" "YardX" 
}

To explain the data: 
you have two objects, MODELS and PROJECTS presented as list values in Telitab_1$ containing TeLiTabs themselfs (with several parameters). 
LPP is part of the MODELS object (TeLiTab).

When you unfold Telitab_1$ dataset on parameter "LPP", you get:


"PROJECTS" 


"CLIENT$" "YardX" 


-4 "1" "2" "3" "4" 
"MODMAT$" "wood" "foam" "wood" "plywood" 
"LPP" 112.30 133.80 98.60 145.00 
"B" 17.80 21.50 16.42 22.40 
"T" 7.65 9.20 6.70 9.40

You see that PROJECT still is a separate object (and presented as a list value in Telitab_1$). All other data (which was part of the MODELS object) now is part of Telitab_1$ and thus a table in the TeLiTab.

Telitab_2$ contains the dataset:


-4 "1" "2" "3" "4" 
"MODNO$" 5684 6231 6301 6537 
"LPP" 112.30 162.70 133.80 118.50 
"B" 17.80 27.80 21.50 16.70 
"T" 7.65 11.20 9.20 6.80

and UnfolPar_2$ contains "NullString", what means that no unfolding of Telitab_2$ is performed.

To carry out the unfolding and the UNION we write: 

UNION#(Telitab_1$, "LPP", Telitab_2$, "NullString", 0)

it returns:


6 "MODMAT$" "LPP" "B" "T" "MODNO$" 
"1" "wood" 112.30 17.80 7.65 "-999999" 
"2" "foam" 133.80 21.50 9.20 "-999999" 
"3" "wood" 98.60 16.42 6.70 "-999999" 
"4" "plywood" 145.00 22.40 9.40 "-999999" 
"5" "-999999" 112.30 17.80 7.65 5684 
"6" "-999999" 162.70 27.80 11.20 6231 
"7" "-999999" 133.80 21.50 9.20 6301 
"8" "-999999" 118.50 16.70 6.80 6537 
"PROJECTS" 


"CLIENT$" "YardX" 



"CLIENT$" "YardX" 



"CLIENT$" "YardX" 



"CLIENT$" "YardX" 












}

Please note that the union simply contains the sum of two Telitab sets and contains the combined parameters and cases of both sets (Mode%=0). Cases 4-8 have empty object values for PROJECTS.

...

If the union should combine the parameter values of the cases with the same value of the overlapping parameters Mode%=1 should be used:

UNION#(Telitab_1$, "LPP", Telitab_2$, "NullString", 1)

returns:


-6 "1" "2" "3" "4" "5" "6" 
"MODMAT$" "wood" "plywood" "wood" "-999999" "foam" "-999999" 
"LPP" 98.60 145.00 112.30 162.70 133.80 118.50 
"B" 16.42 22.40 17.80 27.80 21.50 16.70 
"T" 6.70 9.40 7.65 11.20 9.20 6.80 
"MODNO$" "-999999" "-999999" 5684 6231 6301 6537 
"PROJECTS" 


"CLIENT$" "YardX" 



"CLIENT$" "YardX" 



"CLIENT$" "YardX" 






"CLIENT$" "YardX" 



}

Case 1 and 2 of the result are cases 3 and 4 from the unfolded object MODELS in Telitab_1$
Case 3 is a combination of of the cases 1 of both input sets. 
Case 4 corresponds with case 2 from Telitab_2$
Case 5 is again a combination of respectively the cases 2 and 3. 
Case 6 corresponds with Case 4 from Telitab_2$.

The UNION# function with Mode%=1 can be used as a database manipulation function. The union of two Telitab sets as produced by this functiun completes a set of data by combining data from two source sets in a single table (see also SECTION#() ).


 

Quick links: Function Functions overview | Attribute overview | Constants overview | Dimensions overview