ROWS(LEFT)
ROWS(RIGHT)
The ROWS(LEFT) and ROWS(RIGHT) keywords indicate the parameter being passed to the TRANSFORM function is a record set. These are used in functions where a dataset is being passed, such as COMBINE, ROLLUP, JOIN, DENORMALIZE, and LOOP.
Example:
NormRec := RECORD
STRING20 thename;
STRING20 addr;
END;
NamesRec := RECORD
UNSIGNED1 numRows;
STRING20 thename;
DATASET(NormRec) addresses;
END;
NamesTable := DATASET([ {0,'Kevin',[]},{0,'Liz',[]},
{0,'Mr Nobody',[]},{0,'Anywhere',[]}],
NamesRec);
NormAddrs := DATASET([{'Kevin','10 Malt Lane'},
{'Liz','10 Malt Lane'},
{'Liz','3 The cottages'},
{'Anywhere','Here'},
{'Anywhere','There'},
{'Anywhere','Near'},
{'Anywhere','Far'}],NormRec);
NamesRec DeNormThem(NamesRec L, DATASET(NormRec) R) := TRANSFORM
SELF.NumRows := COUNT(R);
SELF.addresses := R;
SELF := L;
END;
DeNormedRecs := DENORMALIZE(NamesTable, NormAddrs,
LEFT.thename = RIGHT.thename,
GROUP,
DeNormThem(LEFT,ROWS(RIGHT)));
OUTPUT(DeNormedRecs);
See Also: TRANSFORM Structure, COMBINE, ROLLUP , JOIN, DENORMALIZE, LOOP