1. 描述

手动建立关联关系章节中,我们介绍了如何手动通过数据表中的字段来建立关联关系,但是在这仅仅局限于同样字段类型的字段,比如说A表中的A1字段和B表中的B1字段建立关联,如果想要直接建立关联关系,则必须保证A1字段和B1字段的数据类型一直,而实际上,A1字段和B1字段的字段类型很可能会不一致,那么,此时,我们该如何来建立不同字段类型之间的关联关系呢?
我们可以通过新增公式列来对其中一个数据表的字段进行类型转换,生成一个新的字段,该字段类型与被关联数据表字段类型一致。
如下图,我们有一张数据表contact,该数据表中字段product为数值类型,另外一张数据表product_copy里面有一个字段productid,其数据类型为字符串类型,如下图:

商业智能平台关联数据表

此时,我们需要将这两个数据表进行关联。

2. 数据准备

登录FineBI商业智能分析系统页面http://localhost:8080/FineBI/ReportServer?op=fbi,点击数据配置>业务包管理>常见应用业务包,将上述2个数据表添加到业务包中,如下图:

商业智能平台数据准备

由于数据表中的两个字段类型不一致,故,我们要先对其中的一个表的字段进行新增公式列转换,转换其字段类型与另外一张表一致。

2.1 新增公式列

点击product_copy数据表,进入表数据设置界面,在ETL设置点击表名称,选择对该表-新增公式列,如下图:

商业智能平台新增公式列

进入公式列管理界面,点击添加公式列,新增一个公式列product,并输入转换的公式,如下图:

商业智能平台新增公式列

注:TOINTEGER(text): 将文本转换成Integer对象。Text:需要转换的文本。示例:TOINTEGER(“123″)等于 new Integer(123)。
点击确定,回到FineBI商业智能系统公式列管理界面,重命名表名为product_copy_转换,如下图:

商业智能平台公式列管理

点击保存。

3. 建立关联关系

product_copy数据表中的字段已经通过公式列进行类型转换了,原来的数据表名称变为product_copy_转换,且新增了一个字段product,该字段类型为数值类型,数据于原来的productID保持一致。
点击product_copy_转换,进入表数据设置界面,点击关联表对应的product字段后面的文本框,为该数据表建立关联表,如下图:

商业智能平台公式列管理

页面跳转到数据表字段选择界面,如下图,选中该业务包中的contract数据表中的product字段:

商业智能平台建立关联

弹出product关联信息对话框,如下图:

商业智能平台建立关联

点击保存。

4. Cube更新

回到数据配置界面,选择Cube更新设置,点击立即更新多维数据库按钮将数据库中的数据更新到Cube中。

5. 效果查看

Cube更新完成之后,再次点击业务包管理>常见应用业务包,选择关联视图,可以看到这两张数据表已经建立起关联关系了,如下图:

商业智能平台建立关联