IndexHalfKeyedJoin.ecl 788 B

123456789101112131415161718192021222324252627282930313233343536
  1. //
  2. // Example code - use without restriction.
  3. //
  4. IMPORT $;
  5. r1 := RECORD
  6. $.DeclareData.Layout_Person;
  7. $.DeclareData.Layout_Accounts;
  8. END;
  9. r2 := RECORD
  10. $.DeclareData.Layout_Person;
  11. UNSIGNED8 AcctRecPos;
  12. END;
  13. r2 Xform2($.DeclareData.Person.FilePlus L,
  14. $.DeclareData.IDX_Accounts_PersonID R) := TRANSFORM
  15. SELF.AcctRecPos := R.RecPos;
  16. SELF := L;
  17. END;
  18. J2 := JOIN($.DeclareData.Person.FilePlus(PersonID BETWEEN 1 AND 100),
  19. $.DeclareData.IDX_Accounts_PersonID,
  20. LEFT.PersonID=RIGHT.PersonID,
  21. Xform2(LEFT,RIGHT));
  22. r1 Xform3($.DeclareData.Accounts L, r2 R) := TRANSFORM
  23. SELF := L;
  24. SELF := R;
  25. END;
  26. F1 := FETCH($.DeclareData.Accounts,
  27. J2,
  28. RIGHT.AcctRecPos,
  29. Xform3(LEFT,RIGHT));
  30. OUTPUT(F1,ALL);