-
-
wy2018 初学数据Lv2
发表于2018-9-5 16:11
悬赏1
已解决
需求是统计相同表结构的数据表A.T1,B.T2,C.T3,D,T4 符合条件的数据合计。
直接填入分析表格的话好像只有默认数据库的,其他3个要用SQL数据源取,再放入表格求和。这样的话若取多种合计就要乘以3倍来写数据源。
不知描述清楚了没,有没有简单方便的方法?谢谢!

只要你在sql数据源中,选择的写sql的数据源有足够的权限即可
(A、B、C、D为用户方案名,并非BI中JDBC数据源名称,在数据库层面,A用户需要有访问B、C、D用户方案下表的权限)
例如,你选择了A数据源,但是你想访问B、C、D数据源的数据,那么你可以写sql如下:
select T1.aa,T2.bb,T3.cc,T4.dd from A.T1 T1,B.T2 T2 ,C.T3 T3 ,D.T4 T4 where 表关联关系
以上是sql数据源的方式,但是建议最好的方式是通过主题表实现,可以在A用户下创建访问B、C、D下T2、T3、T4表的视图或者同义词,这样A用户的JDBC数据源中就可以访问到T2、T3、T4表了,便可以在同一个主题集中创建四张表的主题表,(更进一步就是基于四张表在数据库层面进行数据建模,DM一层模型,然后直接用BI基于模型创建主题表)
5个回答
刚才把四张数据表都添加成了主题表,这样就可以都填入到分析表里求和了,这样是不是最简便的了。
把4个表在BI中建设主题表,设置A,B,C,D四个表的关联关系,然后通过抓取的方式放到分析表里做求和。
您好既然您已经使用了sql数据源的方式,就可以直接在数据源里面使用 (用户名.表名)的方式调用其他用户方案中的表
只要你在sql数据源中,选择的写sql的数据源有足够的权限即可
(A、B、C、D为用户方案名,并非BI中JDBC数据源名称,在数据库层面,A用户需要有访问B、C、D用户方案下表的权限)
例如,你选择了A数据源,但是你想访问B、C、D数据源的数据,那么你可以写sql如下:
select T1.aa,T2.bb,T3.cc,T4.dd from A.T1 T1,B.T2 T2 ,C.T3 T3 ,D.T4 T4 where 表关联关系
以上是sql数据源的方式,但是建议最好的方式是通过主题表实现,可以在A用户下创建访问B、C、D下T2、T3、T4表的视图或者同义词,这样A用户的JDBC数据源中就可以访问到T2、T3、T4表了,便可以在同一个主题集中创建四张表的主题表,(更进一步就是基于四张表在数据库层面进行数据建模,DM一层模型,然后直接用BI基于模型创建主题表)
大白 发表于 2018-9-5 16:28
您好既然您已经使用了sql数据源的方式,就可以直接在数据源里面使用 (用户名.表名)的方式调用其他用户方 ...
感谢两位工程师的解答,想再进一步问下,
1.sql数据源方式里的“用户方案名”是指红框部分这个么?两边都试了貌似不行。(用户主账号是全访问权限)

2.主题表方式里,显示结果如何按照A列表元合并数据?写表达式么?

wy2018 发表于 2018-9-5 17:18
感谢两位工程师的解答,想再进一步问下,
1.sql数据源方式里的“用户方案名”是指红框部分这个么?两边都 ...
用户方案: 数据库的概念, 你数据库 里面写sql 不也是支持 库名.表名的方式,去访问其他库的 事实表的吗
主题表的方式按照A列,您的意思应该是 group by A列的字段吧
BI中支持浮动维单元格,你先把 表格中放入主题表的字段,然后选中该表元,设置方式如下:

默认就会按照 ,该表元对应字段进行分组group by
,然后指标列,可以设置 聚合函数 sum() 、 max() 、avg(),设置内容根据实际业务需求决定。