xjoin()

阅读(543) 标签: 多个, 叉乘,

描述:

将多个排列完全叉乘起来。

语法:

xjoin(Ai:Fi,xi;…)

备注:

Ai排列无条件叉乘起来,组成一个新序表,新序表由字段Fi,…组成,每个Fi引用原序列Ai的一个成员。叉乘过程中,过滤出Ai中满足条件xi的成员

参数:

Fi

代表结果序表的字段名

Ai

用于叉乘的排列

xi

过滤表达式

选项:

@1

左连接,Ai中无成员可匹配时用null匹配。(注意:这里是数字1

@x

Ai的字段取值都是记录时,字段值将被展开

返回值:

新的序表,分别引用原排列中的成员

示例:

 

A

 

1

=create(Year).record([2000,2001])

 

2

=create(QuarterID, QuarterNmae).

record([1,"one",2,"two",3,"three",4,"four"])

 

3

=xjoin(A1:Year;A2:Quarter)

直接叉乘

4

=create(Month).record(to(12))

 

5

=xjoin(A2:Quarter;A4:Month,Month>(Quarter.QuarterID-1)*3 && Month<=Quarter. QuarterID*3)

通过叉乘,动态的计算过滤表达式。过滤表达式可以参考上一个字段的当前值。

6

=create(Year).record([2000,2001])

7

=create(ID,Value).record([2001,"one",2002,"two",2003,"three",2004,"four"])

8

=xjoin(A6:f1;A7:f2,f1.Year==ID)

9

=xjoin@1(A6:f1;A7:f2,f1.Year==ID)

通过条件过滤后,左连接方式叉乘,无成员可匹配时用null匹配

10

=join(A5:Employee;A6:Familymembers)

 

11

=xjoin(A1:Year1;A2:Quarter1)

 

12

=xjoin(A3:Year2;A11:Quarter2)

13

=xjoin@x(A3;A11)

@x选项,Ai的字段取值都是记录时,字段值将被展开

注意:

join()xjoin ()的区别:

join()是将多个序列Ai按照关联字段/关联表达式xix1相等的关系叉乘,产生以Fi,…为字段的序表。此时xi是关联字段或者关联表达式。

xjoin()是将多个序列Ai无关联条件的叉乘,产生以Fi,…为字段的序表,只是在叉乘过程中,过滤掉各自Ai中不满足xi条件的记录。此时xi是过滤条件。

相关概念:

join()