[ABI 5.2] 拉链表与缓慢变化维的结合

9472
7

liujf 数据达人Lv4

发表于2021-8-4 15:22

悬赏30

已解决

楼主
需求:
      现有一张拉链事实表,根据start_date,end_date进行判断时点数据;
            一张维表,根据start_date,end_date进行判断时点数据。
      目前想该拉链表的每一期数据都能对应上该时点的维表数据。
       ps:该维表还是数据级次维
麻烦各位大佬帮忙康康,可以如何实现呀?

最近看过此主题的会员

Shirley

16601105820

范文杰

伶俐

xuewj

wxy

果冻出场

缱绻

wangbowen

lilixin

zhouzhitian

王先生。

最佳答案
我看到你直接写了Login.id。就是每个人进来看自己。但是可以给不同的日期看之前的部门。那可以借鉴上面的sql。直接左联接部门表。同时给部门做时间点判断。
7个回答

只看楼主

果冻出场 数据小白Lv1

发表于2021-8-4 15:28

只看该作者

取消 关注该作者的回复

沙发

您好,数据级次维,是做了用户权限吗?你这个需求是需要做报表吗?

liujf 数据达人Lv4

发表于2021-8-4 15:33

只看该作者

取消 关注该作者的回复

板凳

果冻出场 发表于 2021-8-4 15:28
您好,数据级次维,是做了用户权限吗?你这个需求是需要做报表吗?

是的我要通过该事实表做一个分析表。首先会根据数据级次判断用户查看报表的数据权限。另外也想该报表查看历史时点数据是正常显示了(如果维表id对应的name发生变化了)

果冻出场 数据小白Lv1

发表于2021-8-4 15:58

只看该作者

取消 关注该作者的回复

地板

维表有一个缓慢增长维的配置, 截图202108041558351107.png

liujf 数据达人Lv4

发表于2021-8-4 16:35

只看该作者

取消 关注该作者的回复

5#

果冻出场 发表于 2021-8-4 15:58
维表有一个缓慢增长维的配置,

这个我清楚,但是我想查看历史时点得数据据诶,类似:
截图202108041631264990.png
我想在20210701-20210708查看得部门是“变更前部门”
20210709-99991231查看得是“变更后得部门”
所以缓慢变化维得结果要根据我传入的参数来了,
但是我看介绍,缓慢变化维是根据事实表的日期来的

果冻出场 数据小白Lv1

发表于2021-8-4 18:22

只看该作者

取消 关注该作者的回复

6#

思路:
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.做数据级次的权限

liujf 数据达人Lv4

发表于2021-8-4 18:40

只看该作者

取消 关注该作者的回复

7#

果冻出场 发表于 2021-8-4 18:22
思路:
1.维表建一个正常的维表dept_zc,去掉变更前部门的数据,只保留最新的数据.这个是为了后面的数据级次维 ...

这个只是展示了这个用户当前有权限的部门数据。如果客户的部门变更了,他的数据级次也就变了。同样就看不到历史数据了。
我想了下,不根据数据级次维判断数据权限,把条件写死,设置数据期和部门两个参数,将两个参数联动起来。当选取一个日期时,部门里面联动取该日期下该用户的部门传参数。
但是有一个问题:参数联动好像不支持写宏,如图,联动不起来。请问下有其他办法么 image.jpg image.jpg

shaoshl 小试身手Lv3

发表于2021-8-4 15:22

只看该作者

取消 关注该作者的回复

8#

我看到你直接写了Login.id。就是每个人进来看自己。但是可以给不同的日期看之前的部门。那可以借鉴上面的sql。直接左联接部门表。同时给部门做时间点判断。

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

渠道咨询电话:137-0120-6790

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号