我有一个包含不同粒度(日期粒度)的事实表。
可以通过筛选月底日期或使用YYYYMM日期格式访问月份数据。在OBIEE回购中,事实被设置为最后的聚合。
我想做年度至今的分析。我只想总结一个月的结束日期。
使用迄今的函数(度量值),它倾向于将所有数据汇总到整个月的e.grain中。
Date Amount YTD TODate(Amount)
31/01/2106 100 100
28/02/2016 200 300
14/03/2016 50 350*
31/03/2016 100 450我希望YTD忽略50和返回400,所以任何其他的日期,在任何一个月内。如果我选择2016年3月14日,我想要350人返回。
谢谢。
发布于 2016-08-23 16:19:07
更改该表以添加一个标志,如果记录位于指定的月度粒度,则标记为Y,如果记录不在指定的月度粒度,则为N。
在逻辑层中,创建两个不同的LTSs,并在Y标志上进行第一个过滤。这将是您计算和来源您的所有迄今为止的度量的地方。第二个LTS可以被过滤到N,也可以留给所有的数据,这取决于您想要对它做什么。
性能的提高应该来自这样一个事实:任何一个月的度量都只会击中标记为月份的记录,并且将绕过所有与此无关的其他数据。因此,如果用户只运行一个只要求每月度量的报告,查询将自动筛选到该特定数据。
如果用户在同一个报表上选择了您的截止日期度量和特定的日期度量,OBIEE应该启动两个单独的查询,以便根据公共维度将数据和数据拼接在一起。
有人能在前端创造这个吗?可能吧。您将不得不执行某种PERIODROLLING函数,并告诉它在月份级别上进行聚合,但我担心它可能仍然会滚动到一个比预期的更大的数量。TODATE函数在这里不能工作。
https://stackoverflow.com/questions/39090194
复制相似问题