Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)

在这里,针对“ReportStudio入门教程(五十二) - 目标值(按层级取数)”,这张报表,讲下FM建模的方法

我们继续使用上一次的FM

1. 新建目标值表 dm_deptserquality_assess

季度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;

2. 数据库视图:引入目标指值表

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第1张图片

右键,选择,运行元数据向导:

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第2张图片

选择数据源:

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第3张图片

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第4张图片

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第5张图片

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第6张图片

3. 数据库视图:改造目标值表

这里的话,我们需要对目标值表进行改造,因为我们要按层级取数据,所以我们要让目标值表和层级有点关系

双击打开目标值表,编辑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
验证之后,确认即可。


4. 数据库视图:修改字段用途

刚引入,默认是这样的,我们要把ID都修改为“标识符”

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第7张图片

5. 数据库视图:设置关联关系

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第8张图片

到了这里,我们就需要考虑一下这个LEVEL了,她其实也是一个维度,

在这里,我们需要构造一个组织层级维度:

Select  
	level as level_id,
	level as level_name
from
	dm_dept_org  
group by level

然后设置上关联关系:

Framework Manager入门教程(八) - 目标值(按层级取数) (FM建模)(上)_第9张图片


数据库视图,我们先讲到这里,我们下回接着说......


你可能感兴趣的:(实例,Cognos,ReportStudio,目标值)