在这里,针对“ReportStudio入门教程(五十二) - 目标值(按层级取数)”,这张报表,讲下FM建模的方法
我们继续使用上一次的FM
季度ID,行政组织ID,目标值
对于目标值,每个层级的部门都有单独的目标值
drop table if exists dm_deptserquality_assess; create table dm_deptserquality_assess( quarter_id bigint, dept_dmid bigint, service_check_score numeric(28,4) );
with tm_a as ( select distinct quarter_id from dm_calendar where year_id in (2012,2013) order by quarter_id ), tm_b as ( select distinct dept_dmid from dm_dept_org order by dept_dmid ) insert into dm_deptserquality_assess( quarter_id, dept_dmid, service_check_score ) select tm_a.quarter_id, tm_b.dept_dmid, random()*100 from tm_a , tm_b;
右键,选择,运行元数据向导:
选择数据源:
这里的话,我们需要对目标值表进行改造,因为我们要按层级取数据,所以我们要让目标值表和层级有点关系
双击打开目标值表,编辑SQL:
Select dm_deptserquality_assess.quarter_id , dm_deptserquality_assess.dept_dmid , dm_deptserquality_assess.service_check_score, o.level From dm_deptserquality_assess dm_deptserquality_assess join dm_dept_org o on o.dept_dmid = dm_deptserquality_assess.dept_dmid验证之后,确认即可。
刚引入,默认是这样的,我们要把ID都修改为“标识符”
到了这里,我们就需要考虑一下这个LEVEL了,她其实也是一个维度,
在这里,我们需要构造一个组织层级维度:
Select level as level_id, level as level_name from dm_dept_org group by level
数据库视图,我们先讲到这里,我们下回接着说......