Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103587351
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 09:53:27

   来源:IBM developerWorks 中国网站    作者:Jason Dere

寻找事实对象使用的表

  这一步与寻找每一维使用的表非常相似。查看每个属性的列/属性列表或每个度量中的列/属性/度量列表中的任何列引用。如果找到列引用,那么将这个列所在的表包含到事实的表集中。如果找到属性或度量的引用,那么再查看这个属性或度量的列/属性/度量列表,从而寻找其他表。也需要为事实对象引用的每个表分配一个关联名,从而区分查询中事实和维使用的同一表的各个实例。

  示例:

  • 对于 sales 事实对象:
    • 查询中的度量:
      • SALES (SALESFACT)
      • Total expense
    • 查询中的属性
      • TIMEID (SALESFACT)
      • STOREID (SALESFACT)
      • PRODUCTID (SALESFACT)
    • sales 事实使用的表:
      • CVSAMPLE.SALESFACT (correlation name T7)

  将事实对象的属性和度量转换为 SQL 表达式

  从事实对象的属性产生 SQL 表达式的方式与维属性相似。

  从事实对象的度量产生 SQL 表达式类似于为属性产生 SQL 表达式。按照与属性相同的方式,对列和属性引用的 ‘{$$n}’ 标志进行替换。但是,度量对象还可能有一个或多个聚合函数,比如 SUM()COUNT(),它们会影响如何产生 SQL 表达式。本节只讨论没有或者只有一个聚合函数的情况。关于如何处理多个聚合函数,请参见 “Generating SQL for asymmetric Measures”。

  我们先给出为一个度量产生 SQL 表达式的示例,这个度量没有引用其他任何度量:

表 12. SALES (SALESFACT) 度量
SQL 表达式模板 列、属性和度量的列表 聚合
{$$1} 列:CVSAMPLE.SALESFACT.SALES SUM

  按照与属性相同的方式,对列和属性标志进行替换,所以从 SQL 表达式模板产生的 SQL 表达式是:

T7.SALES

阅读(497) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~