-
liujf 数据达人Lv4
发表于2021-8-4 15:22
悬赏30
已解决
现有一张拉链事实表,根据start_date,end_date进行判断时点数据;
一张维表,根据start_date,end_date进行判断时点数据。
目前想该拉链表的每一期数据都能对应上该时点的维表数据。
ps:该维表还是数据级次维
麻烦各位大佬帮忙康康,可以如何实现呀?
7个回答
果冻出场 发表于 2021-8-4 15:28
您好,数据级次维,是做了用户权限吗?你这个需求是需要做报表吗?
是的我要通过该事实表做一个分析表。首先会根据数据级次判断用户查看报表的数据权限。另外也想该报表查看历史时点数据是正常显示了(如果维表id对应的name发生变化了)
果冻出场 发表于 2021-8-4 15:58
维表有一个缓慢增长维的配置,
这个我清楚,但是我想查看历史时点得数据据诶,类似:
我想在20210701-20210708查看得部门是“变更前部门”
20210709-99991231查看得是“变更后得部门”
所以缓慢变化维得结果要根据我传入的参数来了,
但是我看介绍,缓慢变化维是根据事实表的日期来的
思路:
1.维表建一个正常的维表dept_zc,去掉变更前部门的数据,只保留最新的数据.这个是为了后面的数据级次维,用户权限登录
2.建两个事实表:cont和dept.
3.cont表和dept表在分析表设置关联关系.设置参数@rq
具体生成的sql应该是这样的:
select MAX(a.DEPT_NO) as B2,MAX(a.START_DT) as C2,MAX(a.END_DT) as D2,a.CONT_NO as A2,max(b.NAME_) as mc_B20
from SQ_CONT a
,SQ_DEPT b
where (A.DEPT_NO=B.ID_(+)) and ((a.START_DT <= '<#=@rq#>') AND (a.END_DT >= '<#=@rq#>')) and ((b.START_DT <= '<#=@rq#>') AND (b.END_DT >= '<#=@rq#>'))
group by a.CONT_NO
这个你在分析表配置以下
然后cont表的dept_no要绑定维表dept_zc.做数据级次的权限
果冻出场 发表于 2021-8-4 18:22
思路:
1.维表建一个正常的维表dept_zc,去掉变更前部门的数据,只保留最新的数据.这个是为了后面的数据级次维 ...
这个只是展示了这个用户当前有权限的部门数据。如果客户的部门变更了,他的数据级次也就变了。同样就看不到历史数据了。
我想了下,不根据数据级次维判断数据权限,把条件写死,设置数据期和部门两个参数,将两个参数联动起来。当选取一个日期时,部门里面联动取该日期下该用户的部门传参数。
但是有一个问题:参数联动好像不支持写宏,如图,联动不起来。请问下有其他办法么