SQL OLAP多维数据集和维度

时间:2012-05-04 22:45:35

标签: ssas data-warehouse olap-cube cube-dimension

在Windows Server 2008中,使用SQL Server 2005,Visual Studio和SQL Server Analysis Services创建了一个OLAP多维数据集。

该场景是一个典型的商店,包括销售产品,客户和代理商。

多维数据集由事实表tblVendite(销售数据)和基于sql视图的维度构成。

注意我尝试在此处嵌入屏幕截图,但是它们会调整大小并且不会清除,所以我将它们发布到安全的网站上进行查看:

SCREENSHOT: stucture of the cube

  • FACT TABLE tblVendite(sell)> PK:CdArticolo (IDProduct)
  • DIMENSION Prodotti(produtcs)
  • DIMENSION Calendario(日历)
  • DIMENSION Agenti(代理商)
  • DIMENSION Clienti(客户)

使用基本过滤器浏览多维数据集作为日历,客户/代理,产品,品牌......一切正常

现在我需要提供一个新功能: 比较"顶级品牌"所有公司出售每个代理商,以了解他如何销售这些品牌

所以我做了一个新表和相关的观点:vwMarcheOrd(顶级品牌)

最畅销品牌sp预先填充,并包含每个品牌的1条记录(CdMarca - Position - {{1}按位置排序)

注意:来自Description我无法直接链接到事实表,因为PK为vwMarcheOrd并且它不存在所以我需要&# 34;桥"按CdMarca查看产品并获取CdMarca以链接事实表

CdArticoloBrand的尺寸和属性:

SCREENSHOT: cube dimension

浏览多维数据集和问题

将尺寸Top Brand(1)添加到行字段,结果是正确的,但如果我添加Brand(2)不正确且许多品牌缺失(但他们存在)

SCREENSHOT: browse Top Brand

所以我的问题是2:

  1. 我对Top Brand维度缺少或错误或误解了什么?
  2. 即使代理商没有销售该品牌的任何商品(空行),
  3. Top Brand行品牌中的顶级品牌?
  4. P.S。我还尝试仅使用vMarcheOrd创建维度,然后使用Product表创建Referenced Relationship以桥接CdMarca> CdArticolo>事实表但结果是相同的

    提前感谢谁能真正帮助我解决阻止我这么多天的问题

2 个答案:

答案 0 :(得分:0)

ciao luka:)

在我看来,您的多维数据集上的属性之间没有正确的属性关系。

我看到你正在使用BIDS 2005,我对它并不十分熟悉(在2008年会更容易提供帮助),但你需要做的是设置Prodoti之间的关系 - >品牌 - >顶级品牌

你可以通过尺寸名称旁边的属性上的那些+符号来做到这一点。

答案 1 :(得分:0)

据我了解,看起来顶级品牌可能会随着时间而改变。这意味着您需要以某种方式跟踪它随着时间的推移。在我的观点中,最简单的方法是将TopBrandKey添加到事实表中,并将顶级品牌维度直接加入事实表。这样,在事实表中为您完成了时间跟踪。随着新记录的出现,您将查找顶级品牌的关键字并将其添加到事实表中。我不认为你的方式会起作用,因为销售的产品不会有顶级品牌(这是两件不同的东西)。