BI 前端实践 2: SQL 数据源做多维分析

实践目标

         给定SQL,对其查询结果进行多维分析。

测试数据及配置

        employees是一套开源的Mysql测试数据,下载后把它导入本地的Mysql数据库中,看到有8个互相关联的表:

..

        在润乾报表的配置文件WEB-INF/raqsoftConfig.xml中增加employees库的JDBC数据源,多维分析的jsp里能直接使用这里配置好的数据源名称emps,它主要配置urldriveruserpassword四个属性:

..

预定义待分析的SQL

         study3.jsp中,在JS变量sqlDatasets里基于emps数据源定义三个SQL,分别从departmentsdept_managerdept_emp表获得数据,然后用JS变量guideConf.sqlId=”dept_mng”指定对第二个SQL进行多维分析:

..

展示SQL结果集

         直接访问jsp,默认会显示查询结果的明细报表:

..

基于SQL结果集汇总分析

         添加一个部门经理任数的新报表,汇总出每个部门一共有过几任经理:

..

 

URL参数动态选SQL做多维分析

        可以进一步的通过url参数传入sqlId,动态的决定对哪个SQL进行多维分析:

..

..

..

动态生成SQL做多维分析

       通过url参数、当前登录用户这些综合信息,动态的拼出符合自己业务需求的带权限SQL,设置到JSsqlDatasets里,这个JSP就能动态的做多维分析了:

..

SQL中用别名把多维分析字段汉化

         上面例子中的字段是英文名,看起来不直观。SQL中经常用as 别名汉化英文字段名,多维分析界面中也会继承这些汉化的字段名:

..

..

SQL中用JOIN获得代码列的名称

         上面例子中的员工(经理)编号和部门编号分别代表了实际的人员和部门,但实际做多维分析的时候更多希望看到经理姓名和部门名称,这时需要用SQL中的JOIN把多个表关联起来,获得代码列相应的名称:

..

..