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