zhengyi1943
作者zhengyi1943·2013-02-28 20:26
CEO·南京正一信息科技有限公司

Report Studio基本概念一、汇总过滤器和明细过滤器(Summary filter and detail filter)

字数 1945阅读 4590评论 7赞 6

汇总过滤器和明细过滤器(Summary filter and detail filter

 

为了计划他们的战略,企业主需要查看各产品线的销量。他们仅仅想关注每个产品线内销量最好的产品,同时在此分析中,可以很方便的选择某个特定月份发货的订单。

在此场景中,我们将创建一张列表,使用product line, product name, quantity作为列表的列,使用订单发货月份的Month Key建立Optional Filter。同时,我们需要应用正确的过滤以查询每个产品线中销量最大产品。

 

准备工作

 

基于GO Data Warehouse (query)数据包,建立新的列表。使用Sales (query)名空间中的Product | Product Line, Product | Product Name, Sales fact | Quantity作为列表的列。

如何实施

1. 我们从建立发货月份的Optional Filter开始。点击报表页面中列表的任何位置,然后点击工具栏中的Filters

2. Filters对话框中,添加一个新的detail filter。定义filter为:

[Sales (query)].[Time (ship date)].[Month key (ship date)] = ?ShipMonth?

设置UsageOptional

4 现在我们添加一个filter来得到每个Product Line中销量最大的Product。为了达到这个目的,选择Product lineProduct name(Ctrl+select),然后点击工具栏中的Group按钮。

这会建立一个如下图所示的分组:

5. 选择列表并且再次点击Filter按钮。这次到Summary filter标签,建立一个新的filter

6. 定义此filter为:

[Quantity] = maximum([Quantity] for [Product line])

7. 设置UsageRequiredScopeProduct name

工作原理

Report Studio允许定义两种类型的filters。二者工作在不同的粒度上,因而有不同的功能。

Detail filter

Detail filter工作在选定对象集合的层级最低的粒度中。在我们的例子里,这个粒度就是储存在’Sales fact’中的’Sales entries’。通过在发货月份上使用detail filter,我们可以确定仅仅属于选中的发货月份的销售条目的数据被抽取出来。

Summary filter

为了获取各个product line中销量最大的product,我们需要考虑每个product的销售数量的合计。

如果我们在销售数量上使用detail filter,它会工作在sales entry层。你可以试着使用[Quantity] = maximum([Quantity] for [Product line])作为detail filter,你会发现报表返回了错误的结果。

所以在这里我们需要使用summary filter。为了让查询引擎知道我们希望过滤在product层级上的销售合计值,我们需要把SCOPE设置为Product name。这使得查询引擎在product name层级上计算[Quantity],然后仅仅允许匹配maximum([Quantity] for [Product line])product names得以显示。

更多

当定义了多层分组时,你可以很容易的通过更改summary filterscope来决定过滤的粒度。

例如,如果你需要显示销售数量大于1000products同时销售数量大于25000product lines,你可以很快的通过使用两个正确设置scopesummary filters得到。

汇总前/后(Before/After aggregation

Detail filter也能够被设置为在自动聚合之后执行(通过改变应用程序属性)。然而,我认为这破坏了detail filter的逻辑。并且,这没有控制filter在哪一个层级上执行。因此,Cognos设置在自动聚合之前执行detail filter为默认选项,这是detail filter最自然的使用方式。

 

 

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

6

添加新评论7 条评论

奥利弗奥利弗数据库开发工程师北纬股份有限公司
2014-08-20 17:19
萌萌懂懂,记下来再说
超级民工超级民工商业智能工程师GOOGLE
2014-03-04 18:21
好东西,非常感谢楼主
feixiangyuanfeixiangyuan业务需求分析师IBM
2013-07-19 13:49
If u apply Before Aggregation to a filter, Detail records will be filtered.
If u apply After Aggregation to a filter, summary records will be filtered.

For eg:
PR_LINE, PRD_NAME, QTY
PRL1, PRODUCT1, 100,
PRL1, PRODUCT2, 200,
PRL2, PRODUCT3, 250,
PRL2, PRODUCT4, 150,
PRL3, PRODUCT5, 150,
PRL3, PRODUCT6, 200,

Ur Report has two data items i.e PR_LINE, QTY
Ur filter def. is QTY <= 350
If u apply after aggregation to this filter u will get below report (Here PRL2 won't be displayed because it's total qty exceeds 350)
PRL1, 300,
PRL3, 350,

If u apply before aggregation to this filter u will get below report (Here PRL2 will be displayed because it's individual qty doesn't exceed 350 )
PRL1, 300,
PRL2, 400,
PRL3, 350,
59531505953150软件开发工程师aaaaa
2013-05-21 14:53
haodongxia
zhangtutuzhangtutu软件开发工程师IBM
2013-04-23 13:55
学习了
pbcycgrpbcycgr数据仓库开发工程师pbc
2013-04-23 10:35
好帖子
贝克汉姆贝克汉姆软件开发工程师IBM
2013-04-09 12:00
再介绍一下 before/after aggregation
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广